Restituisce un valore Variant (Long) che specifica la posizione della prima occorrenza di una stringa all'interno di un'altra.
Sintassi
InStr ([inizio, ] stringa1, stringa2 [, confronto ] )
La sintassi della funzione InStr ha gli argomenti seguenti:
Argomento |
Descrizione |
---|---|
start |
Facoltativo. Espressione numerica che imposta la posizione iniziale per ogni ricerca. Se omesso, la ricerca inizia in corrispondenza della posizione del primo carattere. Se start contiene Null, si verifica un errore. L'argomento inizio è obbligatorio se è specificato confronto . |
stringa1 |
Obbligatorio. Espressione stringa in cui viene eseguita la ricerca. |
stringa2 |
Obbligatorio. Espressione stringa cercata. |
compare |
Facoltativo. Specifica il tipo di confronto di stringhe. Se compare è Null, si verifica un errore. Se confronta viene omesso , l'impostazioneConfronto opzioni determina il tipo di confronto. Specificare un valore LCID (LocaleID) valido per usare regole specifiche delle impostazioni locali nel confronto. |
Suggerimento: Il Generatore di espressioni include IntelliSense, quindi è possibile verificare gli argomenti necessari per l'espressione.
Impostazioni
Le impostazioni dell'argomento compare sono:
Costante |
Valore |
Descrizione |
---|---|---|
vbUseCompareOption |
-1 |
Esegue un confronto usando l'impostazione dell'istruzione Option Compare. |
vbBinaryCompare |
0 |
Esegue un confronto binario. |
vbTextCompare |
1 |
Esegue un confronto di testo. |
Valori restituiti
Se |
InStr restituisce |
---|---|
stringa1 è di lunghezza zero |
0 |
string1 è Null |
Null |
stringa2 è di lunghezza zero |
iniziare |
string2 è Null |
Null |
string2 non trovato |
0 |
stringa2 si trova all'interno di stringa1 |
Posizione in cui viene trovata la corrispondenza |
inizio > stringa2 |
0 |
Osservazioni
La funzione InStrB viene usata con i dati dei byte contenuti in una stringa. Invece di restituire la posizione del carattere della prima occorrenza di una stringa all'interno di un'altra, InStrB restituisce la posizione del byte.
Esempi
Usare la funzione InStr in un'espressione È possibile usare InStr ovunque sia possibile usare espressioni. Ad esempio, se si vuole trovare la posizione del primo punto (.) in un campo che contiene indirizzi IP (denominato IPAddress), è possibile usare InStr per trovarlo, in questo modo:
InStr(1,[IPAddress],".")
La funzione InStr esamina ogni valore nel campo IPAddress e restituisce la posizione del primo periodo. Quindi, se la prima parte dell'indirizzo IP è 10., la funzione restituisce il valore 3.
È quindi possibile usare altre funzioni, che operano sull'output della funzione InStr , per estrarre la parte dell'indirizzo IP che precede il primo punto, in questo modo:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
In questo esempio, InStr(1,[IPAddress],".") restituisce la posizione del primo periodo. La sottrazione 1 determina il numero di caratteri che precedono il primo punto, in questo caso 2. La funzione Left estrae quindi il numero di caratteri dalla parte sinistra del campo IPAddress, restituendo il valore 10.
Usare InStr nel codice VBA
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA).
Questo esempio usa la funzione InStr per restituire la posizione della prima occorrenza di una stringa all'interno di un'altra.
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.