Tương tự như chúng ta có Index và Match trong trang tính làm các hàm tra cứu, chúng ta cũng có thể sử dụng các hàm Match trong VBA làm hàm tra cứu, hàm này là một hàm trang tính và nó được ứng dụng truy cập. phương thức trang tính và vì nó là một hàm trang tính nên các đối số cho hàm Match tương tự như hàm trang tính.
Hàm đối sánh VBA
Hàm Match VBA tìm kiếm vị trí hoặc số hàng của giá trị tra cứu trong mảng bảng, tức là trong bảng excel chính.

Trong một trang tính, các hàm tra cứu là một phần không thể thiếu của excel. Một số hàm tra cứu quan trọng là VLOOKUP, HLOOKUP, INDEX và MATCH. Thật không may, chúng tôi không có các chức năng này như các chức năng VBA. Tuy nhiên, chúng ta có thể sử dụng chúng như các hàm trang tính trong VBA.
Trong bài viết này, tôi sẽ chỉ cho bạn cách sử dụng một trong những hàm tra cứu bảng tính MATCH trong VBA dưới dạng một hàm trang tính.
Làm thế nào để sử dụng hàm MATCH trong VBA Excel?
Chúng tôi sẽ chỉ cho bạn một ví dụ đơn giản về việc sử dụng hàm MATCH trong VBA.
Ví dụ 1
Trong VBA, chúng ta có thể sử dụng công thức MATCH này trong excel như một hàm trang tính. Làm theo các bước dưới đây để sử dụng hàm MATCH trong VBA.
Bước 1: Tạo một quy trình con bằng cách đặt tên macro.
Mã:
Sub Match_Example1 ()

Bước 2: Trong ô E2, chúng ta cần kết quả, vì vậy hãy bắt đầu mã là Phạm vi (“E2”). Giá trị =
Mã:
Sub Match_Example1 () Range ("E2"). Giá trị = End Sub

Bước 3: Trong E2, giá trị ô phải là kết quả của công thức MATCH. Vì vậy, để truy cập hàm VBA MATCH, trước tiên chúng ta cần sử dụng thuộc tính “WorksheetFunction”. Trong thuộc tính này, chúng tôi sẽ nhận được tất cả danh sách chức năng trang tính có sẵn.

Bước 4: Chọn chức năng MATCH tại đây.
Mã:
Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (End Sub

Bước 5: Bây giờ, vấn đề bắt đầu bởi vì chúng tôi không nhận được tên cú pháp chính xác. Thay vào đó, chúng ta nhận được cú pháp là “Arg1, Arg2, Arg3” như thế này. Vì vậy, bạn cần phải hoàn toàn chắc chắn về các cú pháp ở đây.
Đối số đầu tiên của chúng tôi là GIÁ TRỊ NHÌN. GIÁ TRỊ NHÌN của chúng tôi nằm trong ô D2, vì vậy hãy chọn ô làm Phạm vi (“D2”). Giá trị .
Mã:
Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Giá trị, End Sub

Bước 6: Đối số thứ hai là Table Array. Phạm vi mảng bảng của chúng tôi là từ A2 đến A10. Vì vậy, hãy chọn phạm vi là “Phạm vi (“ A2: A10 ”)”
Mã:
Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), End Sub

Bước 7: Bây giờ, đối số cuối cùng là MATCH TYPE. Chúng tôi cần một đối sánh chính xác, vì vậy hãy nhập giá trị đối số là 0.
Mã:
Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), 0) End Sub

Chạy macro, chúng ta sẽ nhận được vị trí của bất kỳ tên năm nào có trong ô D2.

Ví dụ # 2 - Kết hợp VBA từ một trang tính khác
Giả sử cùng một tập dữ liệu từ phần trên nằm trên hai trang tính khác nhau. Ví dụ: mảng bảng có trong tên trang tính được gọi là “Trang tính dữ liệu” và Giá trị tra cứu có trong tên trang tính được gọi là “Trang tính kết quả”.
Trong trường hợp này, chúng ta cần tham chiếu các trang tính theo tên của nó trước khi tham chiếu đến các phạm vi. Dưới đây là bộ mã với tên trang tính.
Mã:
Sub Match_Example2 () Sheets ("Trang kết quả"). Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet"). Range ("D2"). Value, Sheets ("Data Sheet"). Phạm vi ("A2: A10"), 0) Kết thúc phụ

Ví dụ # 3 - Hàm đối sánh VBA với vòng lặp
Nếu kết quả chúng ta muốn trong một ô thì không vấn đề gì, nhưng nếu kết quả phải đến trong nhiều ô, thì chúng ta cần sử dụng vòng lặp VBA để lấy kết quả trong tất cả các ô.
Giả sử bạn có một dữ liệu như thế này.

Trong những trường hợp này, việc viết các đoạn mã dài dòng là một nhiệm vụ cực kỳ nghiêm trọng, vì vậy chúng tôi chuyển sang các vòng lặp. Dưới đây là bộ mã sẽ thực hiện công việc cho chúng tôi.
Mã:
Sub Match_Example3 () Dim k As Integer For k = 2 to 10 Cells (k, 5) .Value = WorksheetFunction.Match (Cells (k, 4) .Value, Range ("A2: A10"), 0) Tiếp theo k Kết thúc Phụ

Bộ mã này sẽ nhận được kết quả chỉ trong nháy mắt.
