fbpx

La funzione InStrRev di VBA

DESCRIZIONE

La funzione InStrRev di Excel VBA restituisce un numero intero che rappresenta la posizione di una sottostringa all’interno di una stringa. La funzione ricerca la stringa da destra a sinistra (cioè dalla fine all’inizio della stringa).

Se la sottostringa non viene trovata, la funzione restituisce il valore 0.

SINTASSI
InStrRev( StringCheck, StringMatch, [Start], [Compare] )
ARGOMENTI DELLA FUNZIONE
StringCheckLa stringa all'interno della quale desideri cercare
StringMatchLa sottostringa che vuoi cercare
[Start]Un argomento intero opzionale, che rappresenta la posizione (dall'inizio di StringCheck) da cui si desidera iniziare la ricerca.

Se omesso, l'argomento [Start] assume il valore predefinito -1, il che significa che la ricerca inizia dalla fine della stringa.
[Compare]Un argomento facoltativo, che specifica il tipo di confronto da effettuare.
Questo può assumere uno dei seguenti valori:

  • vbUseCompareOption: ssegue un confronto utilizzando l’impostazione dell’istruzione Option Compare

  • vbBinaryCompare: esegue un confronto binario

  • vbTextCompare: esegue un confronto testuale

  • vbDatabaseCompare: solo per Microsoft Access. Esegue un confronto in base alle informazioni nel database


Se omesso, l'argomento [Compare] assume il valore predefinito vbBinaryCompare
ESEMPI DI UTILIZZO

Esempio 1

' Trova la posizione dell'ultimo spazio (ovvero la sottostringa " ") all'interno 
' della stringa "Papa Giovanni Paolo Secondo"

Dim pos As Integer
pos = InStrRev( "Papa Giovanni Paolo Secondo", " " )

'Questo restituisce il risultato 20

 

Nell’esempio qua sopra:

  • L’argomento [Start] non è stato fornito alla funzione e quindi è impostato sul valore predefinito –1 (cioè inizia a cercare dalla fine della stringa);
  • Anche l’argomento [Compare] non è stato fornito alla funzione e quindi è impostato sul valore predefinito vbBinaryCompare;
  • Il risultato della funzione InStrRev (il numero intero 20) è assegnato alla variabile pos.

Esempio 2

 
' Trova la posizione dell'ultimo spazio all'interno della stringa 
' "Papa Giovanni Paolo Secondo" prima del carattere 17

Dim pos As Integer 
pos = InStrRev( "Papa Giovanni Paolo Secondo", " ", 17 ) 

'Questo restituisce il risultato 14

 

Nell’esempio qua sopra, la ricerca inizia nella posizione 17 della stringa “Papa Giovanni Paolo Secondo” e quindi la funzione trova lo spazio tra le parole “Giovanni” e “Paolo” nella posizione 14.

Esempio 3

 
' Trova la posizione dell'ultimo e del penultimo spazio
' all'interno della stringa "Papa Giovanni Paolo Secondo" 

Dim lastSpacePos As Integer
Dim secondLastSpacePos As Integer

lastSpacePos = InStrRev( "Papa Giovanni Paolo Secondo", " " )
secondLastSpacePos = InStrRev( "Papa Giovanni Paolo Secondo", " ", lastSpacePos - 1 )

'Le variabili lastSpacePos e secondLastSpacePos ora 
'sono rispettivamente pari a 20 e 14

 

Nell’esempio qua sopra:

  • La funzione InStrRev trova la posizione dell’ultimo spazio e la memorizza (il valore restituito 20) nella variabile lastSpacePos.
  • La seconda chiamata a InStrRev inizia nella posizione lastSpacePos – 1 (ovvero nella posizione 19). Questa chiamata quindi restituisce la posizione del penultimo spazio. Cioè posizione 14.

Esempio 4

 
' Trova il testo "ZZ" all'interno della stringa
' "Papa Giovanni Paolo Secondo"

Dim pos As Integer
pos = InStrRev( "Papa Giovanni Paolo Secondo", "ZZ" )

'Il testo "ZZ" non viene trovato e quindi la funzione
'restituisce il valore 0

 

Nell’esempio precedente, la sottostringa “ZZ” non viene trovata e quindi la funzione InStrRev restituisce il valore 0.

LINK ALLA GUIDA IN LINEA DI OFFICE