VBA InStr | 5 ví dụ hàng đầu để sử dụng hàm Excel VBA InStr
Hàm Excel VBA InStr
Hướng dẫn trong VBA được sử dụng để tìm ra vị trí của một chuỗi con nhất định trong một chuỗi sau khi chúng ta chỉ định phương thức so sánh cho hàm, có bốn phương pháp so sánh khác nhau cho hàm này, hàm này là một hàm chuỗi nhưng kết quả trả về của hàm là số nên đầu ra của hàm này là một biến số nguyên.
Chuỗi trong VBA không là gì ngoài một chuỗi các ký tự tức là tất cả các văn bản được cung cấp với dấu ngoặc kép được coi là chuỗi. Hàm InStr là một hàm văn bản tích hợp được sử dụng để thao tác với các Chuỗi. Ví dụ: - Nếu bạn muốn trích xuất một chuỗi con từ một câu hoặc nếu bạn muốn áp dụng các thay đổi thiết kế phông chữ cho một chuỗi cụ thể trong một chuỗi ký tự hoặc nếu bạn muốn tìm vị trí của một ký tự và nhiều khả năng khác, bạn có thể sử dụng InStr.
Cú pháp
Nó có 4 đối số như trong hình dưới đây.
- [Bắt đầu]: Điều này không bắt buộc. Đây là giá trị số mà chúng ta cần chỉ định từ vị trí nào của chuỗi Hàm hướng dẫn bắt đầu tìm kiếm văn bản được cung cấp. Ví dụ: nếu bạn muốn tìm kiếm ký tự “a” trong từ “Bangalore” từ vị trí thứ 3, chúng ta cần cho biết vị trí bắt đầu của chức năng Hướng dẫn là 3. Vì vậy, từ vị trí thứ 3 ký tự “a” ở vị trí thứ 5. Nếu bạn bỏ qua tham số này, giá trị mặc định là 1.
- Chuỗi 1: Đây là chuỗi thực tế mà chúng tôi đang cung cấp, tức là từ văn bản này, chúng tôi đang cố gắng tìm chuỗi con. Ví dụ: nếu bạn đang tìm kiếm chuỗi “a” trong “Bangalore”, chuỗi 1 trong Bangalore.
- Chuỗi 2: Đây không phải là gì ngoài chuỗi mà chúng ta đang tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm chuỗi “a” trong “Bangalore”, thì Chuỗi 2 là a .
- [So sánh]: Đây lại là một đối số tùy chọn. Có ba loại tùy chọn có sẵn trong đối số [so sánh].
- vbBinaryCompare: Đây không phải là một tìm kiếm phân biệt chữ hoa chữ thường đối với chuỗi con (chuỗi 2) trong Chuỗi 1. Ví dụ: nếu chúng ta đang tìm kiếm “a” trong từ “Bangalore” thì sẽ trả về 2 là kết quả và nếu bạn đang tìm kiếm đối với “A” trong từ “Bangalore” Guid sẽ trả về kết quả là 0 vì chuỗi được cung cấp là giá trị chữ hoa.
Chúng ta cũng có thể đặt số không (0) làm đối số.
vbTextCompare: Đây không phải là một tìm kiếm phân biệt chữ hoa chữ thường của chuỗi 2 trong chuỗi 1. Ví dụ: nếu chúng ta đang tìm kiếm “a” trong từ “Bangalore” thì sẽ trả về kết quả là 2 và nếu bạn đang tìm kiếm “A” trong từ “Bangalore”, hướng dẫn cũng sẽ trả về 2. Logic là A = a, B = b, C = c vv….
Chúng ta cũng có thể đặt một (1) làm đối số.
vbDatabaseCompare: Điều này được sử dụng để so sánh thông tin từ cơ sở dữ liệu của bạn tức là cơ sở dữ liệu Microsoft Access.
Chúng ta cũng có thể đặt một (-1) làm đối số.
5 ví dụ hàng đầu về việc sử dụng chức năng hướng dẫn VBA
Bạn có thể tải xuống Mẫu Excel hướng dẫn hàm VBA này tại đây - Mẫu Excel hướng dẫn hàm VBAVí dụ 1
Hãy bắt đầu với ví dụ đầu tiên. Trong từ Bangalore tìm vị trí của ký tự a.
Đoạn mã dưới đây sẽ thực hiện nhiệm vụ cho chúng tôi.
Mã:
Sub Guid_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub
Bây giờ hãy chạy mã VBA đã cho ở trên bằng phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công như được hiển thị trong ảnh chụp màn hình bên dưới.
Đầu ra:
Ví dụ số 2
Bây giờ trong từ Bangalore, hãy tìm vị trí của ký tự “a” từ vị trí thứ ba.
Đoạn mã dưới đây sẽ thực hiện nhiệm vụ cho chúng tôi.
Mã:
Sub Guid_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub
Để chạy mã được cung cấp ở trên, bạn có thể sử dụng phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công như được hiển thị trong ảnh chụp màn hình bên dưới.
Đầu ra:
Bây giờ trong hình ảnh trên, hãy nhìn vào sự khác biệt so với mã trước đó. Vì chúng tôi đã đề cập đến vị trí bắt đầu của ký tự là 3 nên nó đã bỏ qua ký tự đầu tiên “a” ở vị trí thứ 2.
Ví dụ # 3
Bây giờ chúng ta sẽ thấy tìm kiếm phân biệt chữ hoa chữ thường. Trong từ Bangalore, hãy tìm chữ cái “A”.
Đối với điều này, chúng ta cần cung cấp đối số so sánh dưới dạng vbBinaryCompare.
Mã:
Sub Guid_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Bây giờ hãy chạy mã này bằng phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công.
Đầu ra:
Vì chúng tôi đã cung cấp đối số so sánh dưới dạng vbBinaryCompare nên hàm hướng dẫn trả về kết quả là 0 vì không tồn tại chữ cái viết hoa “A” .
Ví dụ # 4
Bây giờ chúng ta sẽ thấy thêm một tìm kiếm phân biệt chữ hoa chữ thường. Trong từ Bangalore, hãy tìm chữ cái “A”. Ví dụ trước đó trả về kết quả là 0.
Để khắc phục cách tiếp cận phân biệt chữ hoa chữ thường ở đây, chúng ta cần cung cấp đối số so sánh là vbTextCompare.
Mã:
Sub Guid_Example4 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub
Chạy ngay bây giờ, mã này bằng cách sử dụng Phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công.
Đầu ra:
Ví dụ số 5
Bây giờ chúng ta sẽ thấy cấp độ nâng cao của chức năng hướng dẫn. Nếu bạn có nhiều trang tính có tên giống nhau hoặc ít hơn và bạn muốn ẩn tất cả các trang tính đó cùng một lúc, chúng tôi có thể sử dụng mã dưới đây để ẩn một trang tính cụ thể.
Ví dụ: tôi có 5 trang tính có tên là Tóm tắt 1, Tóm tắt 2, Tóm tắt 3, Tóm tắt 4 và Bảng dữ liệu.
Bây giờ tôi muốn ẩn tất cả các trang tính có từ "Tóm tắt". Sử dụng mã dưới đây để ẩn tất cả các trang tính có từ Tóm tắt trong tên của nó.
Mã:
Sub To_Hide_Specific_Sheet () Dim Ws As Worksheet Cho Mỗi W trong ActiveWorkbook.Worksheets If InStr (Ws.Name, "Summary")> 0 Then Ws.Vible = xlSheetVeryHidden End If Next Hàm InStr của Ws tìm kiếm từ hoặc cụm từ trong tên trang tính 'Nếu nó tìm thấy thì nó sẽ bị ẩn End Sub
Chạy ngay bây giờ, mã này bằng cách sử dụng Phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công và xem Đầu ra.
Tương tự, để hiện tất cả các trang tính đó, hãy sử dụng mã dưới đây.
Mã:
Sub To_UnHide_Specific_Sheet () Dim Ws As Worksheet Cho Mỗi W trong ActiveWorkbook.Worksheets If InStr (Ws.Name, "Summary")> 0 Then Ws.Vible = xlSheetVbroken End If Next Ws 'InStr hàm tìm kiếm từ hoặc cụm từ trong tên trang tính 'Nếu nó tìm thấy thì nó sẽ bị ẩn End Sub
Chạy ngay bây giờ, mã này bằng cách sử dụng Phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công và xem Đầu ra.
Những điều cần ghi nhớ
- Hướng dẫn là một chức năng phân biệt chữ hoa chữ thường. Để loại bỏ vấn đề phân biệt chữ hoa chữ thường này, bạn cần cung cấp đối số [so sánh] là.
- Nếu bạn đang tìm kiếm ký tự phân biệt chữ hoa chữ thường, bạn cần cung cấp đối số [so sánh] vì theo mặc định, VBA coi đây là đối số ngay cả khi bạn không cung cấp.
- Hướng dẫn là một hàm VBA để bạn không thể sử dụng nó trong một trang tính excel giống như các công thức tích hợp sẵn khác.
- Nếu hàm không thể tìm thấy Chuỗi 2, kết quả sẽ bằng không.