lỗi khi dùng hàm worksheetFuntion.vlookup

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Điều hành viên: tungblt

Đăng trả lời
thantai100577
Bài viết: 3
Ngày tham gia: Thứ 3 07/08/2018 11:19 pm

lỗi khi dùng hàm worksheetFuntion.vlookup

Gửi bài by thantai100577 »

mình có hàm này:
Private Sub cmb_seach_Click()
If WorksheetFunction.CountIf(Sheet9.Range("A:A"), Me.Txt_macanbo.Value) = 0 Then
MsgBox "Ma nhan su khong ton tai, Ban la can bo moi, hay chon mau 02, bo xung thong tin ok roi in"
Exit Sub
Else
'Set Lookup = Sheet9.Range("A1:C114")
With Me
.Txt_hoten = Application.WorksheetFunction.VLookup(CLng(Me.Txt_macanbo), Sheet9.Range("Lookup"), 2, 0)
.Cmb_Donvi = Application.WorksheetFunction.VLookup(CLng(Me.Txt_macanbo), Sheet9.Range("Lookup"), 3, 0)
.Cmb_chucvu = Application.WorksheetFunction.VLookup(CLng(Me.Txt_macanbo), Sheet9.Range("Lookup"), 5, 0)
.Txt_Userduoccap = Application.WorksheetFunction.VLookup(CLng(Me.Txt_macanbo), Sheet9.Range("Lookup"), 3, 0)
.Cmb_group = Application.WorksheetFunction.VLookup(CLng(Me.Txt_macanbo), Sheet9.Range("Lookup"), 6, 0)
End With
End If
End Sub
Không hiểu sao khi chạy nó báo lỗi
""run-time erro '1004'
''method 'Range' of object '_Worksheet' failed"
Bạn bào giúp mình với
cũng hàm tương tự mình dung ở file khác thì chạy bình thường
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4783
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 526 times

Re: lỗi khi dùng hàm worksheetFuntion.vlookup

Gửi bài by truongphu »

''method 'Range' of object '_Worksheet' failed"
Nghĩa là dùng Phương thức Range của đối tượng Worksheet không đúng!

Dò Phương thức Range trên code của bạn:
Range("A:A") = đúng
Range("A1:C114") = đúng
Vậy lỗi xảy ra ở Sheet9.Range("Lookup")
Vị trí nầy là đối số table_array của hàm VLookup, suy ra bạn đặt tên cho Sheet9.Range("Lookup") chưa tốt. Bạn thử thay bằng các con số, sẽ thấy hàm VLookup chạy tốt, Vd:

.Txt_hoten = Application.WorksheetFunction.VLookup(CLng(Me.Txt_macanbo), Range("A2:B8"), 2, 0)

===========
Để viết code gọn, bạn có thể định nghĩa một đối tượng để rút ngắn dòng code, Vd:
Dim AW As Object
Set AW = Application.WorksheetFunction

Vậy câu code trên sẽ được viết là:
.Txt_hoten = AW.VLookup(CLng(Me.Txt_macanbo), Range("A2:B8"), 2, 0)
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Đăng trả lời

Quay về