Jawaban:
Gunakan fungsi Instr
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
akan mengembalikan 15 dalam pos
Jika tidak ditemukan akan mengembalikan 0
Jika Anda perlu menemukan koma dengan rumus excel, Anda dapat menggunakan =FIND(",";A1)
fungsi ini.
Perhatikan bahwa jika Anda ingin menggunakan Instr
untuk menemukan posisi string case-insensitive gunakan parameter ketiga dari Instr dan berikan const vbTextCompare
(atau hanya 1 untuk die-hards).
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
akan memberi Anda nilai 14.
Perhatikan bahwa Anda harus menentukan posisi awal dalam kasus ini seperti yang dinyatakan dalam spesifikasi yang ditautkan: Argumen awal diperlukan jika perbandingan ditentukan.
Anda juga dapat menggunakan kata khusus like
:
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
Ada juga InStrRev fungsi yang melakukan jenis hal yang sama, tetapi mulai mencari dari akhir teks ke awal.
Per @ rene menjawab ...
Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")
... masih akan mengembalikan 15 ke pos, tetapi jika string memiliki lebih dari satu string pencarian, seperti kata "the", maka:
Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")
... akan mengembalikan 20 ke pos, bukannya 6.
Berdasarkan jawaban Rene, Anda juga bisa menulis fungsi yang mengembalikan TRUE jika substring ada, atau FALSE jika bukan:
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
berhasil untuk Anda?