Microsoft Excel là một trong những công cụ được sử dụng rộng rãi trên thế giới. Excel cho phép người dùng viết mã và tạo macro để tự động hóa các thao tác. Và một trong những minh chứng đó là hàm VLOOKUP – hàm dùng để tìm kết quả dựa trên dữ liệu cụ thể trong tập dữ liệu lớn trong Excel VBA. Nhưng, bạn có biết rằng Excel VBA cho phép bạn người dùng sử dụng VLOOKUP cho các phạm vi được đặt tên không? Việc sử dụng các phạm vi được đặt tên giúp công thức dễ đọc và giảm lỗi trong Excel. Hãy cùng UniTrain tìm hiểu cách sử dụng hàm VBA VLookup với một phạm vi được đặt tên trong Excel nhé.
1. Hiển thị kết quả cho phạm vi được đặt tên trong MsgBox
Ví dụ, người dùng sử dụng VBA VLookup với một phạm vi được đặt tên và hiển thị kết quả bằng MsgBox. Cách này sẽ hữu ích nếu bạn đang tìm cách hiển thị kết quả sau khi tìm kiếm bằng hàm VBA VLookup trong Excel. Ở đây, người dùng sẽ sử dụng phạm vi được đặt tên được tạo trước đó (Employee_Data).
Cách thao tác:
Bước 1: Tạo Module > viết đoạn mã dưới đây > chọn biểu tượng Save.
Đoạn mã:
Sub VLOOKUP_Single_Output()
Dim myRange As Range
Dim lookup_value As Variant
On Error GoTo errorMsg
Set myRange = Range("Employee_Data")
lookup_value = Range("B23")
MsgBox WorksheetFunction.VLookup(lookup_value, myRange, _
3, False), , "Employee Name"
Exit Sub
errorMsg:
MsgBox "Please use a valid Employee ID"
End Sub
Lúc này, đoạn mã sẵn sàng để Run. Trong Excel, có nhiều cách để chạy mã VBA. Bạn có thể tham khảo một số cách chạy mã dưới đây:
Chạy Macro bằng cách dùng tab Developer
Bước 1: Nhập Employee ID hợp lệ vào ô B23. Trong ví dụ này, người dùng đã sử dụng Employee ID 1100809. Sau đó, chọn Developer > Macros.
Bước 2: Khi hộp thoại Macro hiển thị, chọn tùy chọn VLOOKUP_Single_Output và chọn Run.
Sau đó, bạn sẽ có Employee Name tương ứng với Employee ID 1100809 được hiển thị trong MsgBox như hình dưới đây:
Ngược lại, hãy xem điều gì sẽ xảy ra nếu bạn nhập Employee ID sai. Giả sử, người dùng sử dụng Employee ID sai trong ô B23. Sau đó, chạy lại mã VBA.
Ngay lập tức, bạn sẽ nhận được một MsgBox có thông báo “Please use a Valid Employee ID” (như hình dưới).
Làm thế nào mã này hiểu rằng đó là một Employee ID không chính xác? Bởi vì bất kỳ Employee ID nào không có sẵn trong cột đầu tiên trong phạm vi được chỉ định thì sẽ được xem là Employee ID không hợp lệ.
2. Giá trị VLookup từ phạm vi được đặt tên và input người sử dụng
Trong ví dụ trước, người dùng đã nhập Employee ID trực tiếp và phải đảm bảo độ chính xác khi nhập ID. Tuy nhiên, ở ví dụ này, người dùng sẽ sử dụng một cách tốt hơn và hiệu quả hơn để chèn Employee ID.
Ngoài ra, người dùng sẽ chọn một ô và chèn Employee ID vào hộp thoại pop-up được hiển thị sau khi chạy mã.
Cách thao tác:
Bước 1: Tạo Module > nhập đoạn mã > chọn biểu tượng Save.
Đoạn mã:
Sub VLOOKUP_Single_Output()
Dim myRange As Range
Dim lookup_value As Variant
On Error GoTo errorMsg
Set myRange = Range("Employee_Data")
lookup_value = Range("B23")
MsgBox WorksheetFunction.VLookup(lookup_value, myRange, _
3, False), , "Employee Name"
Exit Sub
errorMsg:
MsgBox "Please use a valid Employee ID"
End Sub
Bước 2: Để mở hộp thoại Macro, hãy sử dụng phím tắt ALT + F8. Trong hộp thoại Macro, chọn tùy chọn VLOOKUP_User_Input và chọn Run.
Hộp thoại Employee ID sẽ hiển thị, bạn không cần nhập Employee ID. Thay vào đó, chỉ cần chọn ô chứa Employee ID. Đây là một cách hiệu quả và giảm lỗi đáng kể trong Excel.
Bước 3: Trong hộp thoại Employee ID, chọn bất kì ô nào trong cột Employee ID > chọn OK.
Sau đó, Employee Name đã chọn sẽ hiển thị trong MSgBox trên worksheet (như hình dưới):
Qua 2 ví dụ trên, UniTrain hy vọng bạn sẽ hiểu cách sử dụng Excel VBA VLookup cho phạm vi được đặt tên.
Xem thêm
Khóa học Ứng dụng VBA trong Excel
Cách dùng tính năng EVALUATE trong VBA Excel