Hàm TÌM trong VBA: Cách sử dụng?

muốn học cách sử dụng Hàm TÌM trong VBA🇧🇷 Sau đó, bạn đang ở đúng nơi!

Ai không biết tùy chọn TÌM KIẾM trong Excel? Nếu bạn đã làm việc với Excel một thời gian, có lẽ bạn đã sử dụng chức năng TÌM KIẾM hoặc phím tắt Ctrl + L phổ biến để định vị một từ hoặc đoạn nội dung mà bạn muốn tìm kiếm trong toàn bộ trang tính của mình. giống như toàn bộ sổ làm việc.

Ngoài ra, trong VBA, chúng tôi có một chức năng gọi là TÌM có thể giúp chúng tôi tìm thấy giá trị mà chúng tôi đang tìm kiếm.

Theo dõi chi tiết bên dưới để hiểu thêm về tính năng này thông qua các ví dụ thực tế.

Chức năng TÌM hoạt động như thế nào trong VBA?

Hàm TÌM VBA trong Excel tìm kiếm một giá trị cụ thể trong một phạm vi cụ thể. Tìm kiếm lần xuất hiện đầu tiên của giá trị đó và nếu tìm thấy, hàm sẽ trả về ô chứa giá trị đó. Tuy nhiên, nếu không tìm thấy kết quả khớp, hàm sẽ không trả về kết quả nào. Hàm VBA FIND có thể trả về kết quả khớp chính xác hoặc một phần.

Ví dụ: đoạn mã sau tìm kiếm văn bản "San Pablo» trong khoảng thời gian A1: A10 trongBảng tính1🇧🇷

Với Sheets("Sheet1").Range("A1:A10")
Đặt Rng = .Find(What:="São Paulo")

Mục đích của việc sử dụng hàm FIND trong VBA là để tìm giá trị mong muốn trong một tập dữ liệu nhất định. Với mã VBA, bạn có thể tự động hóa tác vụ tìm giá trị trong Excel.

Cú pháp hàm TÌM trong VBA

Cú pháp hàm VBA FIND được khai báo như sau:

biểu thức.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Donde:

biểu hiện: là đối tượng phạm vi, đứng trước hàm FIND trong mã VBA. Phạm vi tìm kiếm có thể là một hoặc nhiều hàng, cột hoặc toàn bộ bảng tính. Hàm VBA FIND chấp nhận các đối số sau:

  • Quế: Đây là giá trị cần tìm. Nó có thể là số, văn bản hoặc bất kỳ loại dữ liệu Excel nào khác. Đối số này giống như tùy chọn Tìm của “tìm và thay thế” từ Excel.
  • Sau đó: Cho biết ô mà từ đó tìm kiếm sẽ bắt đầu. Nó được nhập dưới dạng tham chiếu ô đơn. Nếu đối số này bị bỏ qua, quá trình tìm kiếm sẽ bắt đầu sau ô ở góc trên bên trái của phạm vi tìm kiếm đã chỉ định.
  • Nhìn vào: Đây là vị trí (hoặc dữ liệu) mà giá trị sẽ được tra cứu. Nó có thể là một nhận xét (xlComments), một công thức (xlFormulas) hoặc một giá trị (xlValues). Giá trị mặc định cho đối số này là xlFormulas. Ngoài ra, đối số này cũng giống như tùy chọn Tìm của “tìm và thay thế” từ Excel.
  • Nhìn: Đối số này quyết định khớp toàn bộ nội dung ô (khớp chính xác) hay một phần nội dung ô (khớp một phần). Các hằng số lần lượt là xlWhole và xlPart để khớp chính xác và một phần. Giá trị mặc định cho đối số này là xlPart.
  • Thứ tự tìm kiếm: Đối số này gợi ý thứ tự tìm kiếm. Bạn có thể chỉ định liệu tìm kiếm sẽ theo hàng (xlByRows) hay cột (xlByColumns). Giá trị mặc định cho đối số này là xlByRows. Ngoài ra, đối số này cũng giống như tùy chọn Tìm của “tìm và thay thế” từ Excel.
  • Địa chỉ tìm kiếm: Cho biết địa chỉ mà tìm kiếm sẽ được thực hiện. Bạn có thể tìm kiếm xuống hoặc tới ô tiếp theo với hằng số xlNext. Ngoài ra, bạn có thể tìm kiếm ngược (lên) hoặc trong ô trước với hằng số xlPrevious. Giá trị mặc định cho đối số này là xlNext.
  • Trường hợp trận đấu: Đối số này quyết định xem tìm kiếm có phân biệt chữ hoa chữ thường hay không. Nếu tìm kiếm phân biệt chữ hoa chữ thường thì đối số này được chỉ định là đúng (TRUE), ngược lại là sai (FALSE). Giá trị mặc định cho đối số này là Sai.
  • MatchByte: Đối số này nên được sử dụng nếu ai đó đã cài đặt hoặc chọn hỗ trợ ngôn ngữ byte kép. Phải được chỉ định là true nếu các ký tự byte kép khớp với các ký tự byte kép. Nên được chỉ định là sai nếu các ký tự byte kép được so khớp với các ký tự byte đơn tương đương của chúng.
  • định dạng tìm kiếm: Cho biết liệu giá trị cần tìm có phải ở định dạng cụ thể (chẳng hạn như in đậm hoặc in nghiêng) hay không. Nếu giá trị tra cứu phải tuân theo một kỹ thuật định dạng, thì đối số này được chỉ định là đúng, ngược lại là sai. Giá trị mặc định của đối số này là sai (FALSE).

chỉ là lý lẽ Cái gì cần thiết. Các đối số khác là tùy chọn.

Hàm FIND trả về một trong các kết quả sau:

  • Nếu tìm thấy giá trị khớp, hàm sẽ trả về ô đầu tiên có giá trị được tìm thấy.
  • Nếu không tìm thấy kết quả khớp, hàm sẽ không trả về kết quả nào. Điều này là do đối tượng chức năng được đặt thành không có gì.

Ngoài ra, nếu không tìm thấy kết quả phù hợp, một thông báo tùy chỉnh được chỉ định qua chức năng hộp tin nhắn có thể được trả lại (xem ví dụ mã bên dưới).

Lưu ý 1: Tìm kiếm bắt đầu sau ô được chỉ định trong đối số. Despué và tiếp tục đến ô cuối cùng trong phạm vi tìm kiếm. Nếu không tìm thấy giá trị cho đến ô cuối cùng này, quá trình tìm kiếm sẽ bắt đầu lại từ ô đầu tiên trong phạm vi tìm kiếm đến ô được chỉ định trong đối số. Despué🇧🇷

Do đó, ô được chỉ định trong đối số Despué nó được tìm kiếm ở cuối quá trình tìm kiếm. Để biết thêm chi tiết về việc sử dụng đối số Despuéxem ví dụ thứ hai trong bài viết này.

Lưu ý 2: Mỗi khi chức năng VBA FIND được sử dụng, nhìn vào🇧🇷 Nhìn vào🇧🇷 thứ tự tìm kiếm y MatchByte Do đó, nếu các giá trị này bị bỏ qua trong lần sử dụng hàm tiếp theo, Excel sẽ sử dụng các giá trị đã lưu trước đó. Do đó, nên khai báo rõ ràng các đối số được cung cấp bất cứ khi nào việc tìm kiếm được thực hiện bằng hàm FIND trong VBA.

Làm cách nào để sử dụng hàm FIND trong Excel VBA?

Để các bạn hiểu rõ công dụng của hàm FIND trong VBA, chúng tôi đã tách ra một số ví dụ thực tế dưới đây.

Ví dụ 1: Chọn ô có giá trị tìm kiếm xuất hiện đầu tiên

Trong ví dụ đầu tiên này, giả sử bạn có một danh sách chứa một số tên như trong hình bên dưới và bạn muốn duyệt và chọn ô chứa tên đó. pedro🇧🇷

Từ đó, hãy làm theo các bước sau:

1. Truy cập hướng dẫn Nhà phát triển 🇧🇷 ngôn ngữ lập trình🇧🇷 (Nếu bạn chưa bật tab Nhà phát triển trong Excel của mình, kiểm tra ở đây từng bước một).

hướng dẫn nhà phát triển

hai. Trên màn hình VBA, chọn trang tính mong muốn từ menu bên trái. Trong ví dụ này, chúng tôi sẽ chọn Bảng tính1 đó là trang tính chứa danh sách tên.

3. Sau khi chọn trang tính mong muốn, trong khu vực bên phải, hãy nhập mã bên dưới:

Chọn ô có lần xuất hiện đầu tiên của giá trị được tìm kiếm

Sub LocateName()
Phạm vi("A1:A10").Tìm(Cái gì:="Peter").Chọn
End Sub
  • Lưu ý trong đoạn mã trên rằng chúng tôi đã đề cập đến phạm vi mà chúng tôi đang tìm kiếm (A1: A10🇧🇷
  • Sau khi đề cập đến phạm vi, hãy đặt dấu chấm (.) và nhập TÌM THẤY🇧🇷
  • Đối số đầu tiên của chúng tôi là những gì chúng tôi đang tìm kiếm. Để làm nổi bật đối số, chúng ta có thể truyền đối số cái gì:=điều này sẽ hữu ích để xác định tham số nào chúng tôi đang đề cập đến.
  • Phần cuối cùng là sau khi tìm từ chúng ta muốn làm gì. Chúng ta cần chọn từ, vì vậy hãy chuyển đối số thành .Lựa chọn🇧🇷
  • Sau đó chạy mã này bằng phím F5 hoặc thủ công như trong hình bên dưới để chọn ô đầu tiên chứa tên pedro🇧🇷

định vị trong VBA

Ví dụ 2: Chọn ô có lần xuất hiện thứ hai của giá trị tìm kiếm

Trong ví dụ thứ hai này, lưu ý rằng hình ảnh sau đây chứa một số tên trong phạm vi A1:A10. Lưu ý rằng tên "pedro” xuất hiện hai lần trong cột A.

Chọn ô có lần xuất hiện thứ hai

Trong trường hợp này, chúng tôi muốn tìm kiếm và chọn lần xuất hiện thứ hai của tên “Peter” trong cột A (nghĩa là ô A7). Để làm điều này, chúng tôi sẽ sử dụng đoạn mã sau:

TÌM lần xuất hiện thứ hai của VBA

Sub LocateName()
Phạm vi("A1:A10").Tìm(Cái gì:="Peter", Sau:=Phạm vi("A2")).Chọn
End Sub

Lưu ý trong đoạn mã trên rằng tìm kiếm bắt đầu sau ô A2 và tiếp tục đến ô cuối cùng trong cột A. Điều này là do phạm vi tìm kiếm được chỉ định là cột A (A1:A10).

Vì vậy, vì tìm kiếm bắt đầu trong ô A3, giá trị “pedro” ở trong ô A7 cho "Bảng tính2🇧🇷 Do đó, ô A7 sẽ được chọn bởi hàm FIND khi thực thi mã.

Nếu tên «pedro” đã không được tìm thấy trong ô A3 cho đến ô cuối cùng trong cột A, lần này quá trình tìm kiếm sẽ bắt đầu lại ở ô A1 và kết thúc ở ô A2. Do đó, ô được chỉ định trong đối số “Despué” được tìm kiếm ngay khi kết thúc quá trình tìm kiếm.

Ví dụ 3: Tìm văn bản bằng cách chỉ định một số ký tự của văn bản

Để tìm kiếm văn bản bằng cách chỉ xác định một phần của nó, hãy nhập đối số Nhìn vào như xlPhần hoặc bỏ qua lập luận này. Theo mặc định, hàm FIND so khớp các ký tự trong giá trị tìm kiếm với toàn bộ chuỗi. Sau đó, nó trả về ô chứa toàn bộ chuỗi này.

Hãy xem ví dụ dưới đây:

Sub LocateName()
Phạm vi("A1:A10").Find(What:="Ped", LookAt:=xlPart).Select
End Sub

Mã này tìm kiếm các ký tự "Ped” trong phạm vi A1:A25 của “Trang tính 3”. Ô chứa giá trị được trả về, được đặt tên thư từ một phần🇧🇷 Vì vậy, bất kể các ký tự giá trị tìm kiếm được đặt ở đầu, giữa hay cuối chuỗi, Excel VBA đều trả về kết quả khớp.

Ghi chú: hằng số xlPhần nó có thể được bỏ qua trong mã vì nó là giá trị mặc định của hàm TÌM. Nhưng nếu đối số này được chỉ định, hãy đảm bảo rằng nó không được đặt trong dấu ngoặc kép.

Ví dụ 4: Tìm văn bản trong một bình luận

Bạn cũng có thể sử dụng hàm FIND của VBA để tìm văn bản trong một chú thích ô trong Excel.

Để hiểu rõ hơn, hãy xem ví dụ bên dưới, nơi chúng tôi có một trang tính chứa ba ô có nhận xét (được biểu thị bằng các hình tam giác màu đỏ). Từ đây, chúng tôi muốn tìm văn bản “hoa hồng đã trả” nằm trong một trong các bình luận. Trong trường hợp này, chúng tôi sẽ sử dụng đoạn mã sau:

Vị trí phụNhận xét()
Phạm vi("A1:B10").Find(What:="Hoa hồng trả", LookIn:=xlComments).Select
End Sub

Tìm văn bản trong nhận xét

Do đó, Excel sẽ chỉ chọn ô chứa nhận xét có văn bản được chỉ định trong mã của chúng tôi.

Ví dụ 5: Xử lý lỗi trong hàm FIND trong VBA

Trong trường hợp đoạn văn bản cần tìm không nằm trong khoảng cho trước, VBA sẽ trả về lỗi như hình bên dưới:

lỗi 91

Để tránh lỗi này, chúng ta có thể sử dụng một mã như hình dưới đây:

Sub LocateName()
Kết quả mờ dưới dạng biến thể

On Error Resume Next
Phạm vi("A1:A10").Tìm(Cái gì:="Cristina").Chọn
Về lỗi GoTo 0

Kết quả = ActiveCell.Value

Nếu Kết quả = "" Thì
MsgBox "Giá trị bạn đang tìm kiếm không có sẵn trong phạm vi được cung cấp!"
Thoát Sub
Cuối Nếu

End Sub

Lưu ý trong đoạn mã trên, nếu VBA tìm thấy giá trị, nó sẽ hiển thị giá trị tìm thấy, nếu không, nó sẽ hiển thị thông báo là "Giá trị bạn đang tìm kiếm không có sẵn trong phạm vi nhất định🇧🇷

Để biết thêm mẹo về cách sửa lỗi VBA, hãy xem bài viết: Lỗi VBA trong Excel: mọi thứ bạn cần biết!

Chi tiết cần nhớ

  • Hàm TÌM là một phần của thuộc tính RANGE và bạn nên sử dụng TÌM sau khi chỉ chọn phạm vi.
  • Trong hàm TÌM, đối số đầu tiên (Cái gì), cộng với mọi thứ khác là tùy chọn.
  • Nếu bạn tìm thấy giá trị sau một ô cụ thể, bạn có thể đề cập đến ô đó trong tham số Despué của cú pháp tìm kiếm.

Tải xuống bảng tính tại đây chứa các ví dụ được trình bày trong hướng dẫn này.

Ngoài ra, hãy xem các thủ thuật Excel sau:

Vậy bạn nghĩ gì về hàm FIND trong VBA? Nếu bạn có bất kỳ câu hỏi nào, hãy để lại bình luận của bạn bên dưới. Ngoài ra, hãy xem thêm các mẹo về Excel và VBA trên trang web của chúng tôi!

ngân hàng tommy
Chúng tôi sẽ rất vui khi nghe những gì bạn nghĩ

Để lại một trả lời

TechnoBreak | Phiếu mua hàng và đánh giá
Logo
Cho phép đăng ký trong cài đặt - chung
Giỏ hàng