VLOOKUP trong Excel VBA | Làm thế nào để viết mã VLOOKUP trong VBA?

Vlookup là một hàm trang tính trong excel nhưng nó cũng có thể được sử dụng trong VBA, chức năng của Vlookup tương tự như chức năng trong VBA và trong cả hai bảng tính, vì nó là một hàm trang tính nên phương pháp sử dụng Vlookup trong VBA là thông qua Application. phương thức và các đối số vẫn giữ nguyên.

Hàm VLOOKUP trong Excel VBA

Hàm Vlookup trong Excel được sử dụng để tìm kiếm một giá trị trong một mảng và trả về giá trị tương ứng của nó từ một cột khác. Giá trị để tìm kiếm phải có trong cột đầu tiên. Cũng cần phải đề cập đến việc tìm kiếm kết hợp chính xác hay kết hợp gần đúng. Hàm trang tính VLOOKUP có thể được sử dụng trong mã hóa VBA. Hàm không được xây dựng trong VBA và do đó chỉ có thể gọi bằng trang tính.

Hàm Vlookup trong Excel có cú pháp sau:

Trong đó, lookup_value là giá trị cần tìm, table_arrray là bảng, col_index_num là số cột của giá trị trả về, range_lookup biểu thị kết quả khớp là chính xác hay gần đúng. range_lookup có thể là TRUE / FALSE hoặc 0/1.

Trong mã VBA, hàm VLOOKUP có thể được sử dụng như:

Application.WorksheetFunction.vlookup (lookup_value, table_array, col_index_num, range_lookup)

Làm thế nào để sử dụng VLookup trong Excel VBA?

Dưới đây là một số ví dụ về Mã VLookup trong Excel VBA.

Bạn có thể tải xuống mẫu VLookup này trong Excel VBA tại đây - VLookup trong Excel VBA Template

Mã VLookup trong Excel VBA Ví dụ # 1

Hãy để chúng tôi xem cách chúng tôi có thể gọi hàm trang tính VLOOKUP trong Excel VBA.

Giả sử bạn có dữ liệu về ID sinh viên, tên và điểm trung bình của họ.

Bây giờ, bạn muốn tra cứu điểm của một sinh viên, với ID 11004.

Để tra cứu giá trị, hãy làm theo các bước sau:

  • Chuyển đến Tab nhà phát triển và nhấp vào Visual Basic.

  • Trong cửa sổ VBA, đi tới Chèn và nhấp vào Mô-đun.

  • Bây giờ, hãy viết mã VBA VLOOKUP. Có thể sử dụng mã VBA VLOOKUP sau.

Sub vlookup1 ()

Dim student_id As Long

Dim đánh dấu As Long

student_id = 11004

Đặt myrange = Range (“B4: D8”)

mark = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

Kết thúc Sub

Đầu tiên, xác định id sinh viên, là giá trị cần tra cứu. Do đó, chúng tôi xác định,

student_id = 11004

Tiếp theo, chúng tôi xác định phạm vi mà giá trị và giá trị trả về tồn tại. Vì dữ liệu của chúng tôi hiện diện trong các ô B4: D8, chúng tôi xác định dải ô- dải ô là:

Đặt myrange = Range (“B4: D8”)

Cuối cùng, chúng tôi nhập hàm Vlookup bằng cách sử dụng hàm Worksheet trong một biến, đánh dấu là:

mark = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

Để in các dấu trong hộp thư, chúng ta hãy sử dụng lệnh sau:

MsgBox “Sinh viên có ID:” & student_id & ”đạt được” & điểm & ”điểm”

Nó sẽ trả về:

Sinh viên có ID: 11004 đạt 85 điểm.

Bây giờ, hãy nhấp vào nút chạy.

Bạn sẽ nhận thấy rằng một hộp thông báo sẽ xuất hiện trong trang tính Excel.

Mã VLookup trong Excel VBA Ví dụ # 2

Giả sử bạn có dữ liệu về tên của nhân viên và mức lương của họ. Dữ liệu này được cung cấp cho các cột B và C. Bây giờ, bạn cần viết mã VBA Vlookup sao cho tên của nhân viên trong ô, F4, tiền lương của nhân viên sẽ được trả về trong ô G4.

Hãy để chúng tôi viết mã VBA VLOOKUP.

  1. Xác định phạm vi mà các giá trị hiện diện, tức là cột B và C.

Đặt myrange = Range (“B: C”)

  1. Xác định tên của nhân viên và nhập tên từ ô F4.

Đặt tên = Phạm vi (“F4”)

  1. Xác định mức lương là ô G4.

Đặt lương = Phạm vi (“G4”)

  1. Bây giờ, hãy gọi hàm VLOOKUP bằng WorksheetFunction trong VBA và nhập hàm đó vào Lương.Value. Điều này sẽ trả về giá trị (đầu ra của hàm Vlookup) trong ô G4. Cú pháp sau có thể được sử dụng:

Lương.Value = Application.WorksheetFunction.VLookup (tên, myrange, 2, False)

  1. Bây giờ, hãy chạy mô-đun. Ô G4 sẽ chứa lương của nhân viên sau khi bạn chạy mã VBA Vlookup.

Giả sử bạn thay đổi giá trị của ô F4 thành “David” trong trang tính và chạy lại mã, nó sẽ trả về mức lương của David.

Mã VLookup trong Excel VBA Ví dụ # 3

Giả sử bạn có dữ liệu của nhân viên trong công ty của bạn, có ID, tên, Phòng ban và mức lương của họ. Sử dụng Vlookup trong VBA, bạn muốn nhận thông tin chi tiết về lương của một nhân viên bằng cách sử dụng tên và bộ phận của anh ta.

Vì hàm vlookup trong excel chỉ tìm kiếm lookup_value trong một cột duy nhất, là cột đầu tiên của table_array, nên trước tiên bạn phải tạo một cột có chứa “Tên” và “Phòng ban” của từng nhân viên.

Trong VBA, chúng ta hãy chèn các giá trị “Tên” và “Phòng ban” vào cột B của trang tính.

Để thực hiện việc này, hãy chuyển đến tab Nhà phát triển và nhấp vào Visual Basic. Sau đó vào insert và click vào Module để bắt đầu một module mới.

Bây giờ chúng ta hãy viết mã, sao cho cột B chứa các giá trị của cột D (tên) và cột E.

Cú pháp được đưa ra là:

Đầu tiên, sử dụng vòng lặp 'for' từ i = 4 vì các giá trị bắt đầu từ hàng thứ 4 trong trường hợp này. Vòng lặp sẽ tiếp tục cho đến khi kết thúc dòng cuối cùng của cột C. Vì vậy, biến i có thể được sử dụng làm số hàng bên trong vòng lặp 'for'.

Sau đó, nhập giá trị để gán cho Ô (row_number, cột B), có thể được cung cấp dưới dạng Cell (i, “B”). Giá trị, như Cell (row_number, cột D) & “_” & Cell (row_number, cột E ).

Giả sử bạn muốn gán ô B5 = D5 & “_” & E5, bạn chỉ cần sử dụng mã như sau:

Ô (5, “B”). Giá trị = Ô (5, “D”). Giá trị & “_” & Ô (5, “E”). Giá trị

Bây giờ, để tìm kiếm giá trị tra cứu trong mảng B5: E24, trước tiên bạn cần nhập giá trị tra cứu. Hãy để chúng tôi lấy giá trị (Tên và Bộ phận) từ người dùng. Để làm điều này,

  1. xác định ba biến, tên, phòng ban và lookup_val dưới dạng một chuỗi.
  2. Lấy đầu vào tên từ người dùng. Sử dụng mã:

name = InputBox (“Nhập tên của nhân viên”)

Nội dung trong hộp nhập “Nhập ..” sẽ được hiển thị trong hộp nhắc khi bạn chạy mã. Chuỗi được nhập trong dấu nhắc sẽ được gán cho biến tên.

  1. Lấy bộ phận từ người dùng. Có thể thực hiện tương tự như trên.

phòng ban = InputBox (“Nhập phòng ban của nhân viên”)

  1. Gán tên và phòng ban với “_” làm dấu phân cách cho biến lookup_val bằng cú pháp sau:

lookup_val = tên & “_” & bộ phận

  1. Viết cú pháp vlookup để tìm kiếm lookup_val trong phạm vi B5: E24 trả về nó trong một mức lương biến đổi.

Khởi tạo biến lương:

Lương mờ As Long

Sử dụng hàm Vlookup để tìm lookup_val. Table_array có thể được cung cấp dưới dạng Phạm vi (“B: F”) và mức lương có trong cột thứ 5. Do đó, cú pháp sau có thể được sử dụng:

lương = Application.WorksheetFunction.VLookup (lookup_val, Range (“B: F”), 5, False)

  1. Để in lương vào hộp tin nhắn, bạn sử dụng cú pháp:

MsgBox (Lương của nhân viên là ”& tiền lương)

Bây giờ, hãy chạy mã. Một hộp nhắc sẽ xuất hiện trong trang tính mà bạn có thể nhập tên. Sau khi bạn nhập tên (Nói Sashi) và bấm OK.

Nó sẽ mở ra một hộp khác mà bạn có thể vào bộ phận. Sau khi bạn vào bộ phận, hãy nói IT.

Nó sẽ in tiền lương của nhân viên.

Nếu Vlookup có thể tìm thấy bất kỳ nhân viên nào có tên và phòng ban, nó sẽ báo lỗi. Giả sử bạn đặt tên "Vishnu" và bộ phận "IT", nó sẽ trả về lỗi thời gian chạy '1004'.

Để giải quyết vấn đề này, bạn có thể chỉ định trong mã, rằng đối với loại lỗi này, hãy in "Không tìm thấy giá trị" thay thế. Để làm điều này,

  1. Trước khi sử dụng cú pháp vlookup, hãy sử dụng mã sau-

Thông báo về lỗi GoTo

Kiểm tra:

Mã theo dõi (của Kiểm tra :) sẽ được theo dõi và nếu nó nhận được bất kỳ lỗi nào, nó sẽ chuyển đến câu lệnh "thông báo"

  1. Ở cuối mã (Trước khi kết thúc phụ), chỉ định rằng nếu số lỗi là 1004, sau đó in trong hộp thông báo “Dữ liệu nhân viên không hiển thị”. Điều này có thể được thực hiện bằng cú pháp:

Thông điệp:

Nếu Err.Number = 1004 thì

MsgBox (“Không có dữ liệu nhân viên”)

Kết thúc nếu

Mô-đun 1:

Sub vlookup3 ()

For i = 4 To Cells (Rows.Count, “C”). End (xlUp) .Row

Ô (i, “B”). Giá trị = Ô (i, “D”). Giá trị & “_” & Ô (i, “E”). Giá trị

Tên iDim tiếp theo là chuỗi

Bộ phận làm mờ dưới dạng chuỗi

Dim lookup_val As String

Giảm lương As Longname = InputBox (“Nhập tên của nhân viên”)

phòng ban = InputBox (“Nhập phòng ban của nhân viên”)

lookup_val = name & “_” & DepartmentOn Lỗi GoTo Tin nhắn

kiểm tra:

lương = Application.WorksheetFunction.VLookup (lookup_val, Range (“B: F”), 5, False)

MsgBox (“Lương của nhân viên là” & tiền lương) Thông báo:

Nếu Err.Number = 1004 thì

MsgBox (“Không có dữ liệu nhân viên”)

Kết thúc IfEnd Sub

Những điều cần nhớ về VLookup trong Excel VBA

  • Hàm Vlookup có thể được gọi trong Excel VBA bằng cách sử dụng WorksheetFunction.
  • Cú pháp của hàm vlookup vẫn giữ nguyên trong Excel VBA.
  • Khi mã vlookup VBA không thể tìm thấy lookup_value, nó sẽ báo lỗi 1004.
  • Lỗi trong hàm vlookup có thể được quản lý bằng cách sử dụng câu lệnh goto nếu nó trả về lỗi.

$config[zx-auto] not found$config[zx-overlay] not found