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 [, confronta ] )
Gli argomenti della sintassi della funzione InStr sono i seguenti:
| Argomento | Descrizione |
|---|---|
| start | Facoltativo. Espressione numerica che imposta la posizione iniziale per ogni ricerca. Se omesso, la ricerca inizia dalla posizione del primo carattere. Se start contiene Null, si verifica un errore. L'argomento iniziale è obbligatorio se si specifica il confronto . |
| stringa1 | Obbligatorio. Espressione stringa in cui viene eseguita la ricerca. |
| stringa2 | Obbligatorio. Espressione stringa cercata. |
| compare | Facoltativo. Specifica il tipo di confronto tra stringhe. Se il confronto è Null, si verifica un errore. Se il confronto viene omesso, l'impostazione OptionCompare determina il tipo di confronto. Specifica un LCID valido (LocaleID) per utilizzare le regole specifiche delle impostazioni locali nel confronto. |
Suggerimento
Il Generatore di espressioni include IntelliSense, in modo da poter vedere gli argomenti richiesti dall'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 | Restituisce InStr |
|---|---|
| stringa1 è di lunghezza zero | 0 |
| stringa1 è Null | Null |
| stringa2 è di lunghezza zero | inizio |
| stringa2 è Null | Null |
| stringa2 non trovata | 0 |
| stringa2 si trova all'interno di stringa1 | Posizione in cui viene trovata la corrispondenza |
| stringa iniziale2 > | 0 |
Osservazioni
La funzione InStrB viene usata con dati 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 si possano usare le espressioni. Ad esempio, se si vuole trovare la posizione del primo punto (.) in un campo contenente indirizzi IP (denominato IPAddress), è possibile usare InStr per trovarla, 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 utilizzare altre funzioni, operando sull'output della funzione InStr , per estrarre la porzione di 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 di 1 determina il numero di caratteri che precedono il primo punto, in questo caso 2. La funzione Left estrae quindi il numero di caratteri desiderato 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).
In questo esempio viene utilizzata 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.