Risposte:
Utilizzare la funzione Instr
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
restituirà 15 in pos
Se non trovato, restituirà 0
Se è necessario trovare la virgola con una formula di Excel, è possibile utilizzare la =FIND(",";A1)
funzione.
Si noti che se si desidera utilizzare Instr
per trovare la posizione di una stringa senza distinzione tra maiuscole e minuscole, utilizzare il terzo parametro di Instr e dargli la const vbTextCompare
(o solo 1 per i duri a morire).
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
ti darà un valore di 14.
Si noti che in questo caso è necessario specificare la posizione iniziale come indicato nella specifica I collegata: l'argomento iniziale è richiesto se viene specificato il confronto.
Puoi anche usare la parola speciale like
:
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
C'è anche la funzione InStrRev che fa lo stesso tipo di cose, ma inizia la ricerca dalla fine del testo all'inizio.
La risposta di Per @ rene ...
Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")
... restituirebbe comunque 15 in pos, ma se la stringa ha più di una stringa di ricerca, come la parola "the", allora:
Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")
... restituirebbe 20 in pos, anziché 6.
Basandoti sulla risposta di Rene, potresti anche scrivere una funzione che restituiva VERO se era presente la sottostringa o FALSO se non lo fosse:
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
per te?