Cách sử dụng INDEX MATCH với Excel VBA

  • Chia Sẻ Cái Này
Hugh West

Bạn có thể sử dụng các hàm Trang tính Excel tích hợp như Hàm VLOOKUP , Hàm CHOOSE Hàm PMT trong mã VBA và ứng dụng của bạn cũng. Trên thực tế, hầu hết các hàm trang tính Excel đều có thể được truy cập và sử dụng trong VBA code . Giống như sử dụng INDEX & Hàm MATCH Worksheet trong mã VBA Excel.

Tại sao bạn muốn sử dụng các hàm Excel Worksheet trong VBA của mình mã ? Vâng để mở rộng chức năng của mã bạn đang sử dụng. Ngoài ra, bạn không cần phải nghĩ ra các chức năng của riêng mình, trừ khi bạn thực sự cần, nếu chức năng đó đã có sẵn. Về cơ bản, tất cả những gì bạn cần làm là truy cập chức năng bạn cần vì chức năng này đã có sẵn và sau đó không cần phải phát minh lại bánh xe.

Vì vậy, hãy bắt đầu với một ví dụ minh họa cách sử dụng INDEX  MATCH với Excel VBA.

Chúng ta sẽ sử dụng INDEX MATCH Hàm trong Excel VBA code , để tạo một UserForm đơn giản. Sử dụng biểu mẫu, người dùng chọn tên của học sinh, sau đó giới tính tương ứng của học sinh nói trên và màu mắt được truy xuất và trả về.

Tải xuống Sách bài tập thực hành

Vui lòng tải xuống sách bài tập thực hành để tự luyện tập.

INDEX-MATCH.xlsx

9 bước đơn giản để sử dụng INDEX và MATCH trong mã VBA

The CHỈ SỐ TRẬN ĐẤU Các hàm thường được sử dụng kết hợp trong công thức để thực hiện tra cứu nâng cao. Cả hai kết hợp mang lại những lợi thế nhất định so với VLOOKUP .

Chúng tôi đã đề cập chi tiết cách sử dụng INDEX MATCH để thực hiện nâng cao tra cứu trong Sổ làm việc Excel dưới dạng công thức trang tính thẳng, trong hướng dẫn trước đó . Bây giờ chúng ta sẽ xem cách sử dụng các Hàm INDEX MATCH cùng nhau trong VBA code , để cung cấp chức năng tương tự cho tra cứu UserForm mà chúng ta sẽ tạo.

Bước 1: Áp dụng Hàm INDEX và MATCH trong Tập dữ liệu

  • Chúng ta đang bắt đầu với hai trang tính trong macro của mình -kích hoạt sổ làm việc. Một là trang tính trống có tên UserForm , trang còn lại là trang tính có tên StudentInformation , chứa một dải hiển thị tên sinh viên, giới tính tương ứng của họ và màu mắt dưới dạng được hiển thị bên dưới.

Hãy nhanh chóng nhắc nhở bản thân nếu chúng ta muốn sử dụng INDEX MATCH Các hàm trong một công thức, trong trang tính thực tế để cung cấp cho chúng ta giới tính của tên học sinh mà chúng ta muốn tra cứu. Chúng tôi sẽ sử dụng công thức sau:

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • Sau khi nhấn CTRL-ENTER , ta được giá trị Females trả về, là giới tính như hình bên dưới.

Bước 2: Đổi Tên cột B thành StudentNames

  • Bây giờ chúng ta sẽ đặt tên cho dải ô A2: A31 , StudentNames như hình bên dưới.

  • Ẩn trang tính Thông tin sinh viên bằng cách nhấp chuột phải và chọn Ẩn. Bạn nên ẩn một cách hời hợt các trang tính phụ trợ có chứa thông tin đó bạn không muốn người dùng chỉnh sửa hoặc xem.

Bước 3: Mở Cửa sổ Visual Basic

  • Bây giờ với bảng UserForm đã được kích hoạt, chúng ta chuyển đến Nhà phát triển > Mã > Visual Basic để mở Visual Basic Editor (VBE) .
  • Khi vào giao diện VBE , chúng ta vào Insert, UserForm như hình bên dưới .

Bước 4: Thay đổi thuộc tính và thêm hộp văn bản

  • Sử dụng cửa sổ Properties , chúng ta sẽ đổi tên biểu mẫu của mình thành StudentLookup , thay đổi Chú thích thành Tra cứu thông tin sinh viên, thay đổi BackColor thành màu lam nhạt và đặt chiều cao thành 300 px và chiều rộng là 350 px. Nếu Cửa sổ Thuộc tính không hiển thị, hãy nhấn phím F4 trên bàn phím của bạn để xem.

  • Chúng tôi bây giờ sẽ chèn nhãn bằng cách sử dụng Hộp công cụ (nếu bạn không thể thấy Hộp công cụ, vì lý do nào đó, hãy vào Xem, Hộp công cụ ), thay đổi Chú thích thành Chọn học sinh và chúng tôi sẽ thay đổi BackColor thành màu trắng trong trường hợp này. Chúng tôi sẽ đặt phông chữ thành Georgia , kiểu phông chữ thành đậm , cỡ chữ thành 12 trung tâm căn chỉnh văn bản. Hiệu ứng đặc biệt được sử dụng sẽ là 1– fmSpecialEffectRaised như hình bên dưới.

  • Bây giờ chúng ta sẽ chèn một hộp tổ hợp bên dưới nhãn mác. Đặt tên cho hộp tổ hợp này là cmdStudentName và đối với RowSource , nhập StudentNames.

  • Để xem tác dụng của việc đặt RowSource của hộp tổ hợp, Nhấp vào nút Chạy Sub/UserForm .
  • Hiện tại do việc đặt RowSource vào phạm vi đã đặt tên, khi người dùng nhấp vào mũi tên thả xuống trên Biểu mẫu người dùng, hộp tổ hợp sẽ tự động hiển thị tên sinh viên từ phạm vi đã đặt tên như minh họa bên dưới.

  • Đóng UserForm bằng cách nhấp vào nút đóng. Nhấn Alt-F11 để quay lại VBE .
  • Sau khi quay lại VBE , hãy thêm một nhãn khác vào Biểu mẫu người dùng ( bên dưới hộp tổ hợp) và thay đổi Chú thích thành Giới tính và chúng tôi sẽ thay đổi Màu nền thành màu trắng trong trường hợp này. Chúng tôi sẽ đặt phông chữ thành Georgia , kiểu phông chữ thành đậm , cỡ chữ thành 12 căn giữa căn chỉnh văn bản . Hiệu ứng đặc biệt được sử dụng sẽ là 1– fmSpecialEffectRaised như minh họa bên dưới.

  • Tạo hộp văn bản bên dưới Giới tính nhãn và đặt tên là txtGender .
  • Thêm một nhãn khác có tên là Eye Color và một hộp văn bản có tên txtEyeColour như hình bên dưới. Sử dụng các thuộc tính giống nhau cho nhãn như đối với hai nhãn khác đã được thêm vào biểu mẫu trước đó để đảm bảo rằng UserForm có giao diện nhất quán.

  • Bây giờ Chọn tất cả các điều khiển, được thêm vào UserForm , cho đến nay bằng cách sử dụng phím điều khiển.

  • Chính giữa theo chiều ngang, như minh họa bên dưới.

Đọc Thêm: Cách sử dụng Công thức INDEX MATCH trong Excel (9 ví dụ)

Bài đọc tương tự

  • Excel INDEX MATCH Nếu ô chứa văn bản
  • Cách sử dụng công thức INDEX-MATCH trong Excel để tạo nhiều kết quả
  • Chỉ số khớp tổng nhiều hàng trong Excel (3 cách)
  • Học lập trình Excel VBA & Macro (Hướng dẫn miễn phí – Từng bước)
  • 22 Ví dụ về Macro trong Excel VBA

Bước 5: Thêm Nút từ Hộp công cụ

  • Tiếp theo, Thêm nút vào biểu mẫu bằng cách sử dụng Hộp công cụ . Thay đổi Tên của nút thành cmdLookUp , BackColor thành màu cam nhạt, giữ nguyên phông chữ Tahoma thay đổi kiểu thành in đậm , cuối cùng thay đổi Chú thích của nút thành Nhìn lên Học sinh Chi tiết như hình bên dưới.

Bước 6: Chèn Mã VBA

  • Nhấp chuột phải vào , nút mới được thêm vào và chọn Chế độ xem .

  • Nhập mã sau cho nút sự kiện nhấp chuột:

8238

Chúng tôi bắt đầu bằng cách khai báo ba biến và gán loại dữ liệu biến thể cho những biến được khai báo này các kiểu dữ liệu biến thể. Loại dữ liệu biến thể là một loại dữ liệu tốt để bắt đầu. Bởi vì khi làm việc với bảng tính hàm , bạn có thể không luôn chắc chắn về kết quả đầu ra. Do đó, hãy sử dụng loại dữ liệu biến thể khi bạn mới bắt đầu.

Sau này, bạn nên sử dụng một trong các loại dữ liệu cụ thể khác, chẳng hạn như số nguyên hoặc chuỗi. Đối với mã dài hơn nâng cao hơn, loại dữ liệu biến thể không sử dụng bộ nhớ hiệu quả như các loại dữ liệu khác.

Biến a lấy giá trị từ tùy chọn mà người dùng chọn trong hộp tổ hợp thả xuống trên UserForm . Nếu không có lựa chọn nào, thì tất cả các hộp văn bản khác đều trống .

Nếu bạn chọn tên học sinh từ kết hợp hộp trên UserForm, thì biến b rút ra giá trị bằng cách sử dụng Hàm INDEX Bảng tính kết hợp với Hàm MATCH trong mã VBA , như được hiển thị.

Mã này tra cứu giá trị bằng cách sử dụng cú pháp về cơ bản giống như hàm trang tính. Khi sử dụng các hàm trang tính trong VBA , VBA IntelliSense trong trường hợp cụ thể này không phải là rất trực quan , do đó, bạn phải quen vớinên sử dụng cú pháp thu thập được từ kiến ​​thức trang tính. Biến c lấy giá trị bằng cách sử dụng INDEX Bảng tính Hàm kết hợp với Hàm MATCH trong mã VBA khi người dùng chọn một tùy chọn từ hộp tổ hợp.

Biến b nhận giá trị từ giới tính cột trong trang tính, trong khi biến c lấy giá trị từ cột Màu mắt trong trang tính.

Hộp văn bản giới tính được điền bằng b 's giá trị và hộp văn bản màu mắt được điền bằng giá trị của c .

Đọc thêm: Sự kiện VBA Excel (Hướng dẫn đầy đủ)

Bước 7: Chèn Nút Lệnh

  • Bây giờ, hãy chuyển đến trang tính có tên UserForm trong sổ làm việc của bạn. Định dạng nó, như minh họa bên dưới và chèn hình ảnh được cung cấp bởi ExcelWIKI .

  • Đi tới Nhà phát triển > Điều khiển > Chèn > Điều khiển ActiveX.

  • Chèn một nút như minh họa.

  • Với nút được chọn, đi tới Nhà phát triển > Điều khiển > Thuộc tính .

  • Thay đổi Tên của nút thành cmdShowForm Chú thích thành Tra cứu Thông tin học sinh .

Bước 8: Xem Tra cứu Mã

  • Nhấp chuột phải vào nút chọn Xem Mã như hình minh họabên dưới.

  • Nhập mã sau:
2125

Bước 9: Hiển thị kết quả cuối cùng

  • Quay lại trang tính . Đảm bảo Thiết kế Chế độ không được chọn.
  • Nhấp vào nút để hiển thị biểu mẫu.

  • Chọn tên của học sinh bằng cách sử dụng hộp tổ hợp . Mã này sẽ tự động trả về giới tính và màu mắt của học sinh.

Hãy nhớ lưu sổ làm việc của bạn dưới dạng sổ làm việc hỗ trợ macro , nếu bạn chưa làm như vậy và bạn đã có nó, chúng tôi sử dụng INDEX & MATCH Worksheet Hàm trong mã VBA Excel để tạo biểu mẫu tra cứu.

Đọc thêm: Công thức Excel INDEX-MATCH trả về nhiều giá trị theo chiều ngang

Kết luận

Excel có nhiều hàm trang tính hữu ích, có thể được sử dụng trong VBA , chẳng hạn như sử dụng INDEX & Hàm MATCH Worksheet trong mã VBA của Excel. Các hàm này sẽ cho phép bạn mở rộng mã VBA của mình. Nếu bạn đã biết cách chúng hoạt động trong Excel<2 tiêu chuẩn> bảng tính thì quá trình học tập sẽ không tuyệt vời bằng cách điều chỉnh kiến ​​thức cho VBA . Việc truy cập các chức năng của trang tính, trong mã VBA của một người có thể tiết kiệm thời gian thực. Bởi vì người ta không phải phát triển các chức năng tùy chỉnh cho chức năng đã có.

Vui lòng nhận xét và cho biếtchúng tôi nếu bạn sử dụng các hàm trang tính trong mã VBA và các ứng dụng của mình.

Phần ôn tập: Kiểm tra hiểu biết của bạn

1) Thiết lập một danh sách đơn giản trong cột A gồm ba mục là quýt, cà rốt và cam , sau đó trong ô bên cạnh mỗi mục trong cột B liệt kê các mục trong cột A là trái cây hay rau củ, sau khi bạn đã hoàn tất thiết lập dữ liệu mẫu của mình, hãy sử dụng INDEX & Chức năng kết hợp MATCH để phân phối xem cà rốt là trái cây hay rau củ.

2) Sử dụng bộ dữ liệu này từ ESPN trên các huấn luyện viên trưởng NFL và đội tương ứng mà họ đang huấn luyện. Tạo biểu mẫu người dùng cho phép người dùng nhập tên của một huấn luyện viên nhất định vào hộp văn bản. Sau đó, yêu cầu nhóm mà anh ấy đang huấn luyện được phân phối trong một hộp văn bản khác khi người dùng nhấp vào gửi. Sử dụng INDEX & MATCH tổ hợp hàm trang tính trong mã VBA của bạn.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.