Bị lỗi khi gán Range cho Mảng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

khongnhienttt

Thành viên hoạt động
Tham gia
15/7/15
Bài viết
137
Được thích
33
Mình có dữ liệu như hình bên dưới, vì yêu cầu dò mã NV nên mình sẽ gán 1 Mảng bằng cột Mã NV như code bên dưới
Capture.PNG
Mã:
Sub test()
    Dim arr()
    arr = Sheet1.Range("B2:B" & Sheet1.Range("B65000").End(xlUp).Row).Value
    MsgBox arr(1, 1)
End Sub
Tuy nhiên nếu có >1 Mã NV thì code chạy OK, mà chỉ có 1 Mã NV thì code báo lỗi Type Missmatch, vì ta khai báo arr là mảng, nhưng mã NV bên kia nếu chỉ có 1 ô thì nó lại Hiểu là String nên báo lỗi
- Mong các bạn và các anh chị giải đáp giúp
 

File đính kèm

Vậy mình "né" nó:
Mã:
arr = Sheet1.Range("B2:C" & Sheet1.Range("B65000").End(xlUp).Row)
 
Upvote 0
Cám ơn bạn, chắc chỉ còn cách né nó để sống chung với lũ.
 
Upvote 0
Cám ơn bạn, chắc chỉ còn cách né nó để sống chung với lũ.

Không phải là "sống chung với lũ" gì cả. Đó là mẹo nhỏ để giải quyết vấn đề một cách đơn giản nhất.

Mã:
Sub Vidu1()
    Dim arr As Variant, eR As Long
    With Sheet1
        eR = .Range("B65000").End(xlUp).Row
        arr = .Range("B2:B" & eR)
        If eR = 2 Then
            MsgBox arr
        Else
            MsgBox arr(1, 1)
        End If
    End With
End Sub

Sub Vidu2()
    Dim arr As Variant, eR As Long
    With Sheet1
        eR = .Range("B65000").End(xlUp).Row
        arr = .Range("B2:B" & eR)
        If TypeName(arr) = "Variant()" Then
            MsgBox arr(2, 1)
        Else
            MsgBox arr
        End If
    End With
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom