Trả về một Biến_thể (Dài) xác định vị trí của một chuỗi xuất hiện lần đầu tiên trong một chuỗi khác.
Cú pháp
InStr ([start, ] string1, string2 [, compare ] )
Cú pháp hàm InStr có các đối số sau đây:
Đối số |
Mô tả |
---|---|
bắt đầu |
Không bắt buộc. Biểu thức số đặt vị trí bắt đầu cho mỗi tìm kiếm. Nếu bị bỏ qua, tìm kiếm sẽ bắt đầu từ vị trí ký tự đầu tiên. Nếu bắt đầu chứa Null, sẽ xảy ra lỗi. Bắt buộc phải có đối số bắt_đầu nếu so_sánh được xác định. |
chuỗi_1 |
Bắt buộc. Biểu thức chuỗi đang được tìm kiếm. |
chuỗi_2 |
Bắt buộc. Biểu thức chuỗi tìm kiếm. |
so_sánh |
Không bắt buộc. Xác định loại so sánh chuỗi. Nếu so_sánh chứa Null, sẽ xuất hiện lỗi. Nếu so _sánh bị bỏ qua, cài đặt Sosánh Tùy chọn sẽ xác định loại so sánh. Xác định LCID hợp lệ (LocaleID) để sử dụng các quy tắc dành riêng cho ngôn ngữ trong so sánh. |
Mẹo: Bộ dựng Biểu thức có IntelliSense, vì vậy bạn có thể xem các tham đối mà biểu thức yêu cầu.
Cài đặt
Các thiết đặt đối số so sánh là:
Hằng số |
Giá trị |
Mô tả |
---|---|---|
vbUseCompareOption |
-1 |
Thực hiện so sánh bằng cách sử dụng cài đặt của câu lệnh So sánh Tùy chọn. |
vbBinaryCompare |
0 |
Thực hiện so sánh nhị phân. |
vbTextCompare |
1 |
Thực hiện so sánh văn bản. |
Giá trị Trả về
If |
Trả về InStr |
---|---|
string1 có độ dài bằng 0 |
0 |
string1 là Null |
Null |
string2 có độ dài bằng 0 |
bắt đầu |
string2 là Null |
Null |
không tìm thấy string2 |
0 |
string2 được tìm thấy trong string1 |
Vị trí khớp được tìm thấy |
bắt > chuỗi 2 |
0 |
Chú thích
Hàm InStrB được sử dụng với dữ liệu byte chứa trong một chuỗi. Thay vì trả về vị trí ký tự của lần xuất hiện đầu tiên của một chuỗi trong một chuỗi khác, InStrB trả về vị trí byte.
Ví dụ
Sử dụng hàm InStr trong một biểu thức Bạn có thể sử dụng InStr ở bất cứ nơi nào bạn có thể sử dụng biểu thức. Ví dụ: nếu bạn muốn tìm vị trí của kỳ thứ nhất (.) trong trường có chứa địa chỉ IP (có tên là IPAddress), bạn có thể sử dụng InStr để tìm địa chỉ đó, như thế này:
InStr(1,[IPAddress],".")
Hàm InStr kiểm tra từng giá trị trong trường IPAddress và trả về vị trí của dấu chấm đầu tiên. Do đó, nếu phần đầu tiên của địa chỉ IP là 10., hàm trả về giá trị 3.
Sau đó, bạn có thể sử dụng các hàm khác, thao tác trên đầu ra của hàm InStr , để trích xuất phần địa chỉ IP trước dấu chấm đầu tiên, như thế này:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
Trong ví dụ này, InStr(1,[IPAddress],".") trả về vị trí của kỳ thứ nhất. Trừ 1 xác định số ký tự trước dấu chấm đầu tiên, trong trường hợp này là 2. Hàm Left sau đó trích xuất nhiều ký tự từ phần bên trái của trường IPAddress, trả về giá trị 10.
Sử dụng InStr trong mã VBA
Lưu ý: Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA).
Ví dụ này sử dụng hàm InStr để trả về vị trí xuất hiện đầu tiên của một chuỗi trong một chuỗi khác.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.