thaiduy123456
Thành viên mới
- Tham gia
- 18/11/22
- Bài viết
- 7
- Được thích
- 0
Application.WorksheetFunction.VLookup(Sheets("Sheet1").Cells(5, j), _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.
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
Bất cứ dùng hàm nào để lookup trong VBA thì phải bẫy lỗ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
Bạn có thể sửa giúp mình được không? Cám ơn bạn.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)...
Mình cho rằng làm mới cho bạn sau khi bạn mô tả lại yêu cầu còn dễ hơn là sửa VBA của bạn.Bạn có thể sửa giúp mình được không? Cám ơn bạn.
Quá chuẩn, thank bạn nhiều.Đã dùng fornext sao không gán value luôn mà lại gán formula