Thầy ơi kiểm tra giúp em code này sai ở chỗ nào với?
Sub laydulieugocHDV2()
Dim dlg As Worksbook
Dim hdv As Worksbook
Set dlg = worksbooks("DLG.xlsx").Sheets("CDmast_date")
Set hdv = workbooks("Quan ly KHCN").Sheets("huydongvon")
maxdlg = dlg.Cells(Rows.Count, 1).End(xlUp).Row
maxhdv = hdv.Cells(Rows.Count, 2).End(xlUp).Row
On Error Resume Next
For i = 2 To maxhdv
hdv.Cells(i, 11) = Application.WorksheetFunction.VLookup(hdv.Cells(i, 4), dlg.Range("A1:B" & maxdlg), 2, 0)
Next i
MsgBox "xong"
End Sub
Bạn đang gán 2 biến dlg, hdv lầ dạng workbook, nhưng khi set biến bạn lại set về đạng worksheet.
Sai ở chỗ này nhé.
Ngoài ra còn 1 lỗi logic nữa: Khi sử dụng On Error Resume Next thì khi hết vòng lặp bạn phải sử dụng On Error Go to 0 để đưa về chế độ bẫy lỗi thông thường.