Có phải bạn muốn đặt sự kiện ở cột B nếu có tên vật tư thì tự động thêm hàm vlookup ở cột ĐVT không?
Bạn có thể làm như sau sẽ chính xác hơn:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim giatri As String
giatri = Target.Value
If Not Intersect(Range("B3:B500"), Target) Is Nothing Then
On Error Resume Next
Target.Offset(, 1).Value = Application.WorksheetFunction.VLookup(giatri, Sheets("Data").Range("B3:C10"), 2, 0)
On Error GoTo 0
End If
End Sub
sử dụng hàm vlookup trong WorksheetFunction sẽ tốt hơn là gán công thức động vào trong ô.
Để loại bỏ các lỗi có thể gặp khi dùng hàm vlookup thì bạn dùng On Error resume next và On error goto 0 (nội dung này mình có hướng dẫn trong chương 11, bạn có thể xem lại ý nghĩa của câu lệnh bẫy lỗi này).