Câu trả lời:
Sử dụng chức năng م
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
sẽ trở lại 15 trong pos
Nếu không tìm thấy nó sẽ trả về 0
Nếu bạn cần tìm dấu phẩy với công thức excel, bạn có thể sử dụng =FIND(",";A1)
hàm.
Lưu ý rằng nếu bạn muốn sử dụng Instr
để tìm vị trí của chuỗi không phân biệt chữ hoa chữ thường, hãy sử dụng tham số thứ ba của م và cung cấp cho nó const vbTextCompare
(hoặc chỉ 1 cho các điểm chết).
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
sẽ cung cấp cho bạn một giá trị 14.
Lưu ý rằng bạn phải chỉ định vị trí bắt đầu trong trường hợp này như được nêu trong đặc tả tôi đã liên kết: Đối số bắt đầu là bắt buộc nếu so sánh được chỉ định.
Bạn cũng có thể sử dụng từ đặc biệt like
:
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
Ngoài ra còn có hàm InStrRev thực hiện cùng loại, nhưng bắt đầu tìm kiếm từ cuối văn bản đến đầu.
Mỗi câu trả lời của @ rene ...
Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")
... vẫn sẽ trả về 15 cho pos, nhưng nếu chuỗi có nhiều hơn một chuỗi tìm kiếm, như từ "the", thì:
Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")
... sẽ trả lại 20 cho pos, thay vì 6.
Dựa trên câu trả lời của Rene, bạn cũng có thể viết một hàm trả về TRUE nếu chuỗi con có mặt hoặc FALSE nếu nó không:
Public Function Contains(strBaseString As String, strSearchTerm As String) As Boolean
'Purpose: Returns TRUE if one string exists within another
On Error GoTo ErrorMessage
Contains = InStr(strBaseString, strSearchTerm)
Exit Function
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '" & Err.Description & "'", vbCritical, "Database Error"
End
End Function
INSTR
làm việc cho bạn?