Yanıtlar:
Kullan Enstrumanı işlevini
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
15 poz verir
Bulunmazsa 0 döndürür
Bir excel formülü ile virgül bulmanız gerekiyorsa, =FIND(",";A1)
işlevi kullanabilirsiniz .
Büyük / Instr
küçük harfe duyarlı olmayan bir dizenin konumunu bulmak için kullanmak istiyorsanız , Instr'un üçüncü parametresini kullanın ve buna const vbTextCompare
(ya da sert kalıplar için sadece 1) verin.
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
size 14 değerini verecektir.
Bu durumda başlangıç konumunu, bağladığım spesifikasyonda belirtildiği gibi belirtmeniz gerektiğini unutmayın: Karşılaştırma belirtilirse, başlangıç argümanı gereklidir.
Özel kelimeyi de kullanabilirsiniz like
:
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
Aynı tür şeyleri yapan, ancak metnin sonundan başlangıcına kadar aramaya başlayan InStrRev işlevi de vardır .
@ Rene'nin cevabı başına ...
Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")
... yine 15 değerini pos'a döndürür, ancak dizede "the" kelimesi gibi birden fazla arama dizesi varsa, o zaman:
Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")
... 6 yerine 20 yerine dönecekti.
Rene'nin cevabına dayanarak, alt dize varsa DOĞRU veya yoksa YANLIŞ döndüren bir işlev de yazabilirsiniz:
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
çalışıyor mu ?