Cách sử dụng chức năng tìm kiếm trong VBA (6 ví dụ)

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

Một trong những chức năng quan trọng nhất và được sử dụng rộng rãi mà chúng tôi sử dụng trong Ứng dụng Visual Basic (VBA) là chức năng Tìm. Trong bài viết này, tôi sẽ chỉ cho bạn cách bạn có thể sử dụng hàm FIND của Excel với các ví dụ và hình minh họa thích hợp.

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

Hàm Tìm trong VBA trong Excel.xlsm

6 Ví dụ Nhanh để Sử dụng Hàm TÌM trong VBA

Ở đây chúng tôi đã có một bộ dữ liệu với Tên sách, Tác giả Giá cả của một số sách của hiệu sách có tên là Hiệu sách Martin.

Hôm nay mục tiêu của chúng tôi là xem các cách sử dụng khác nhau của hàm Find của VBA từ tập dữ liệu này.

1. Sử dụng Hàm Tìm trong VBA mà không có Tham số

Bạn có thể sử dụng Hàm Tìm của VBA mà không có tham số.

Sau đó, nó sẽ tìm kiếm một giá trị cụ thể trong một phạm vi ô và trả về giá trị khớp đầu tiên mà nó tìm thấy.

Hãy tìm kiếm tên “P. B. Shelly” trong cột Tác giả ( C4:C13 ).

Dòng có chức năng Find sẽ là:

Set cell = Range("C4:C17").Find("P. B. Shelly")

Toàn bộ Mã VBA sẽ là:

Mã VBA:

2637

Đầu ra:

Nó tạo ra Macro được gọi là Tìm . Nếu bạn chạy Macro, nó sẽ trả về $C$6 , địa chỉ ô đầu tiên có tên P. B. Shelly .

Đọc thêm: Tìm trong Phạm vi với VBA trongExcel: Bao gồm các đối sánh chính xác và một phần

2. Áp dụng Hàm Tìm trong VBA với Tham số Sau (Để Bắt đầu Tìm kiếm từ một Ô Cụ thể)

Bạn có thể sử dụng tham số Sau với Hàm Tìm trong VBA . Sau đó, nó sẽ bắt đầu tìm kiếm một giá trị từ bên dưới một ô trong một phạm vi.

Ví dụ: hãy bắt đầu tìm kiếm tên “P. B. Shelly” từ bên dưới ô C6 .

Dòng mã sẽ là:

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

Mã VBA hoàn chỉnh sẽ là:

Mã VBA:

7711

Kết quả:

Nó sẽ trả về $C$13 vì nó bắt đầu tìm kiếm từ bên dưới ô C6 , đó là từ ô C7 . Vì vậy, nó nhận được P. B. Shelly trong ô C13 trước.

Đọc thêm: Cách tìm chuỗi trong một Ô Sử dụng VBA trong Excel

3. Chạy Hàm Tìm kiếm trong VBA với Bao quanh Tham số Sau (Để Tìm kiếm Giá trị theo Đường vòng)

Tham số Sau với Hàm Tìm tìm kiếm một giá trị theo cách vòng tròn

Tức là, nó bắt đầu tìm kiếm từ bên dưới một ô trong phạm vi, kết thúc tìm kiếm trong phạm vi rồi lại bắt đầu từ đầu phạm vi.

Ví dụ: hãy bắt đầu tìm kiếm tên “John Keats” từ ô bên dưới C8 bằng cách sử dụng tham số Sau .

Dòng của mã sẽ là:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

Vàhoàn thành Mã VBA sẽ là:

Mã VBA:

4690

Kết quả:

Nó sẽ trả về $C$7 vì nó bắt đầu tìm kiếm từ bên dưới ô C8 , đó là từ ô C9 .

Nó không tìm thấy bất cứ thứ gì cho đến ô C13 , vì vậy nó lại bắt đầu từ ô C4 và tìm thấy một thứ trong ô C7 .

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

  • Cách tìm chuỗi bằng VBA trong Excel (8 ví dụ)
  • Tìm khớp chính xác bằng VBA trong Excel (5 cách)
  • Cách tìm và thay thế bằng VBA (11 Cách)

4. Sử dụng Hàm Tìm trong VBA với Tham số LookAt (Đối sánh Chính xác hoặc Một phần)

Bạn có thể sử dụng Hàm Tìm trong VBA với <1 Tham số>LookAt .

Sử dụng LookAt = xlWhole cho Chính xác đối sánh và LookAt=xlPart cho Một phần khớp.

Ví dụ: hãy thử tìm xem có cuốn sách nào có tên “Ode” trong cột Tên sách ( B4:B13 ).

Nếu chúng tôi sử dụng xlWhole trong dòng mã:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

Đầu ra sẽ hiển thị lỗi vì không tìm thấy bất kỳ chính xác khớp nào.

Nhưng nếu bạn sử dụng:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

Sau đó, nó sẽ trả về $B$9 , vì có một cuốn sách có tên “Ode” trong ô B7 , Ode to the Nightingale.

Vậy mã hoàn chỉnh cho trận đấu một phần là:

Mã VBA:

8204

5. Vận hành Hàm Tìm kiếm trong VBA với Tham số SearchDirection (Để Chỉ định Hướng Tìm kiếm)

Bạn cũng có thể sử dụng Hàm Tìm kiếm trong VBA với Tham số SearchDirection .

Sử dụng SearchDirection = xlNext để tìm kiếm từ Top to Bottom .

SearchDirection = xlTrước để tìm kiếm từ Dưới lên trên .

Ví dụ: hãy thử tìm Tác giả Elif Shafak trong cột Tác giả ( C4:C13 ).

Nếu chúng tôi sử dụng xlNext trong dòng mã:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

Sau đó, nó sẽ trả về $C$5 .

Nhưng nếu bạn sử dụng:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

Sau đó, nó sẽ trả về $C$11 .

Vì vậy, mã hoàn chỉnh để tìm kiếm từ từ dưới lên trên là:

Mã VBA:

5927

6. Hàm Tìm trong VBA với Tham số MatchCase (Dành cho Kết hợp phân biệt chữ hoa chữ thường hoặc Không phân biệt chữ hoa chữ thường)

Cuối cùng, bạn có thể sử dụng Hàm Tìm với tham số MatchCase .

Sử dụng MatchCase = True cho trường hợp phân biệt chữ hoa chữ thường , MatchCase=False cho match không phân biệt chữ hoa chữ thường.

Ví dụ: hãy thử tìm cuốn sách “mẹ” trong cột Tên sách ( B4:B13 ).

Nếu chúng tôi sử dụng True trong dòng mã:

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

Đầu ra sẽ hiển thị lỗi vì nó không hoạt động không tìm thấy bất kỳkhớp.

Nhưng nếu bạn sử dụng:

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

Sau đó, nó sẽ trả về $ B$9 vì có một cuốn sách có tên “Mẹ” trong ô B8 .

Vậy mã hoàn chỉnh cho đối sánh phân biệt chữ hoa chữ thường là:

Mã VBA:

9801

Kết luận

Sử dụng các phương pháp này, bạn có thể sử dụng Hàm Tìm kiếm trong Ứng dụng Visual Basic. Bạn có câu hỏi nào không? Hãy hỏi chúng tôi.

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ọ.