Lỗi sử dụng hàm Vlookup trong VBA

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

thaiduy123456

Thành viên mới
Tham gia
18/11/22
Bài viết
7
Được thích
0
Thân chào mọi người.
- Số là mình có viết 1 cái code để lọc dữ liệu trên cơ sở sử dụng làm Vlookup nhưng bị báo lỗi mismatch. Nhờ mọi người giúp đỡ.
Cám ơn mọi người.
 

File đính kèm

Đã chọn phương án VBA rồi thì mọi dòng, cột phụ và hàm build-in hạn chế dùng nhé bạn
Mà bạn có thực sự cần VBA không, trong khi dùng công thức rất đơn giản?
M6:
=INDEX($C$3:$C$80,MATCH($L6,$A$3:$A$80,0)+M$5-1)
 

File đính kèm

Thân chào mọi người.
- Số là mình có viết 1 cái code để lọc dữ liệu trên cơ sở sử dụng làm Vlookup nhưng bị báo lỗi mismatch. Nhờ mọi người giúp đỡ.
Cám ơn mọi người.
Application.WorksheetFunction.VLookup(Sheets("Sheet1").Cells(5, j), _
Sheets("Sheet1").Range(Cells(3, k), Cells(3, m)), _
2, 0)

ban thử sửa như này xem
 
@Chủ bài đăng:
Nếu là mình thì khai báo thêm 1 tham biến Sh để xài sẽ thấy câu lệnh thoáng mát hơn
Ví dụ:
PHP:
Sub Macro1()
Dim i As Integer, J As Integer, K As Integer, M As Integer
Dim Sh As Worksheet   '  **     '

Set Sh = ThisWorkbook.Worksheets(Sheet1)    '  **     '
For J = Cells(3, 11).Value To Cells(3, 13).Value Step 1
    For i = Cells(2, 11).Value To Cells(2, 13).Value Step 1
        K = Cells(i, 10).Value
        M = Cells(i, 11).Value
        Cells(i, J) = Application.WorksheetFunction.VLookup(Sh.Cells(5, J), Sh.Range(Cells(3, K), Cells(3, M)), 2, 0)
    Next i
Next J
End Sub
 
Application.WorksheetFunction.VLookup(Sheets("Sheet1").Cells(5, j), _
Sheets("Sheet1").Range(Cells(3, k), Cells(3, m)), _
2, 0)

ban thử sửa như này xem
Bất cứ dùng hàm nào để lookup trong VBA thì phải bẫy lỗi.
Lỗi ở bài này có lẽ là do tìm không thấy.
- Nếu gọi hàm qua WorkSheetFunction thì lỗi này sẽ làm vba queo râu tại chỗ. Do đó phải bẫy với "On Error..."
- Nếu gọi hàm không qua WorkSheetFunction thì Application sẽ tự động lọc lỗi thành dạng lỗi. Đem dạng lỗi gán cho biến đã xác định kiểu thì sẽ bị "Type Mismatch". Muốn bẫy lỗi này thì biến cần gán phải được định là variant. Và sau đó check lỗi bằng If IsErrror(biến)...
 
Lần chỉnh sửa cuối:
Bất cứ dùng hàm nào để lookup trong VBA thì phải bẫy lỗi.
Lỗi ở bài này có lẽ là do tìm không thấy.
- Nếu gọi hàm qua WorkSheetFunction thì lỗi này sẽ làm vba queo râu tại chỗ. Do đó phải bẫy với "On Error..."
- Nếu gọi hàm không qua WorkSheetFunction thì Application sẽ tự động lọc lỗi thành dạng lỗi. Đem dạng lỗi gán cho biến đã xác định kiểu thì sẽ bị "Type Mismatch". Muốn bẫy lỗi này thì biến cần gán phải được định là variant. Và sau đó check lỗi bằng If IsErrror(biến)...
Bạn có thể sửa giúp mình được không? Cám ơn bạn.
 
Đã dùng fornext sao không gán value luôn mà lại gán formula
 

File đính kèm

Web KT

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

Back
Top Bottom