Questo tutorial dimostrerà come utilizzare la funzione InStrRev VBA per trovare il testo da destra…
Funzione InStrRev
La funzione VBA InStrRev cerca la posizione di una sottostringa all'interno di una stringa. Restituisce la posizione contando da sinistra a destra ma esegue la ricerca dalla fine della stringa all'inizio.
VBA InStrRev Trova sottostringa
La funzione VBA InStrRev può essere utilizzata per trovare la posizione di una sottostringa all'interno di una stringa.
12345678 | Sub InStrRevExample_1()MsgBox InStrRev("ABCABC", "C") 'Il risultato è: 6MsgBox InStrRev("ABCABC", "BC") 'Il risultato è: 5MsgBox InStrRev("La La Land", "L") 'Il risultato è: 7MsgBox InStrRev("La La Land", "La") 'Il risultato è: 7MsgBox InStrRev("La La Land", "La ") 'Il risultato è: 4MsgBox InStrRev("La La Land", "M") 'Il risultato è: 0Fine sottotitolo |
Posizione iniziale VBA InStrRev
La funzione VBA InStrRev può avviare la ricerca di una sottostringa da una posizione assegnata conteggiata da sinistra a destra.
12345678 | Sub InStrRevExample_2()MsgBox InStrRev("La La Land", "L") 'Il risultato è: 7MsgBox InStrRev("La La Land", "L", 8) 'Il risultato è: 7MsgBox InStrRev("La La Land", "L", 7) 'Il risultato è: 7MsgBox InStrRev("La La Land", "L", 6) 'Il risultato è: 4MsgBox InStrRev("La La Land", "L", 4) 'Il risultato è: 4MsgBox InStrRev("La La Land", "L", 3) 'Il risultato è: 1Fine sottotitolo |
Programmazione VBA | Il generatore di codice funziona per te!
Maiuscole/minuscole VBA InStrRev
La funzione VBA InStrRev per impostazione predefinita fa distinzione tra maiuscole e minuscole. È possibile modificare tale comportamento in modo che non faccia distinzione tra maiuscole e minuscole utilizzando un parametro facoltativo. In tal caso, è necessario definire anche la posizione di partenza della ricerca.
123456789 | Sub InStrRevExample_3()'InstrRev per impostazione predefinita fa distinzione tra maiuscole e minuscoleMsgBox InStrRev("La La Land", "L") 'Il risultato è: 7MsgBox InStrRev("La La Land", "l") 'Il risultato è: 0'InstrRev può eseguire ricerche senza distinzione tra maiuscole e minuscoleMsgBox InStrRev("La La Land", "L", -1, vbTextCompare) 'Il risultato è: 7MsgBox InStrRev("La La Land", "l", -1, vbTextCompare) 'Il risultato è: 7Fine sottotitolo |
VBA InStrRev Ultimo spazio
La funzione VBA InStrRev può trovare la posizione dell'ultimo spazio in una stringa.
123456789 | Sub InStrRevExample_4()MsgBox InStrRev("La Terra", " ")'Il risultato è: 6MsgBox InStrRev("Leonardo da Vinci", " ")'Il risultato è: 12MsgBox InStrRev("Che la Forza sia con te", " ")'Il risultato è: 22Fine sottotitolo |
VBA InStrRev dal secondo all'ultimo spazio
La funzione VBA InStrRev può trovare la posizione del penultimo spazio in una stringa. Possiamo usare la funzione VBA InStrRev per trovare l'ultimo spazio in una stringa e quindi possiamo usare nuovamente InStrRev con un nuovo punto di partenza per trovare la posizione del penultimo spazio
12345678910111213 | Sub InStrRevExample_5()Dim LastPos As IntegerLastPos = InStrRev("Che la Forza sia con te", " ")MsgBox LastPos 'Il risultato è: 22Dim SecondLastPos As IntegerSecondLastPos = InStrRev("Che la Forza sia con te", " ", LastPos - 1)MsgBox SecondLastPos 'Il risultato è: 17'InStrRev ha iniziato la ricerca dello spazio appena prima dell'ultimo spazio'Troverà il penultimo spazio perché cerca da destra a sinistraFine sottotitolo |
Stanco di cercare esempi di codice VBA? Prova AutoMacro!
VBA InStrRev Nome file di ritorno
La funzione VBA InStrRev può essere utilizzata per restituire facilmente il nome del file da una stringa che contiene il percorso e il nome del file. Useremo la funzione InStrRev con le funzioni VBA Len e VBA Right.
La funzione VBA Len restituisce la lunghezza di una stringa:
1 | MsgBox Len("XBCX") 'Il risultato è: 4 |
La funzione VBA Right restituisce n caratteri dalla fine di una stringa:
1 | MsgBox Right("ABCDE", 2) 'Il risultato è: DE |
Possiamo usare la funzione InStrRev per trovare l'ultima occorrenza di "\" nel nome del percorso e usare la funzione Len per calcolare la lunghezza del nome del file. Right può quindi estrarre il nome del file.
12345678910111213141516171819202122232425262728 | Sub InStrRevExample_4()Dim PathEx As StringPathEx = "C:\MyFiles\Other\UsefulFile.pdf"Dim FilenameEx As StringFilenameEx = Right(PathEx, Len(PathEx) - InStrRev(PathEx, "\"))MsgBox FilenameEx 'Il risultato è: FileUtile.pdf'Scomponiamo questo codiceMsgBox Len (PathEx)'Questa è la lunghezza del nome del percorso (31)MsgBox InStrRev(PathEx, "\")'Questa è la posizione dell'ultimo \ nella stringaMsgBox Len(PathEx) - InStrRev(PathEx, "\")'Questa è la lunghezza del nome del file (14)'La differenza tra l'intera lunghezza e la posizione dell'ultimo \ nella stringa'(31-27=14)'Ora sappiamo la lunghezza del nome del file e ovviamente è alla fine'La funzione giusta è l'ideale per questa situazioneFilenameEx = Right(PathEx, Len(PathEx) - InStrRev(PathEx, "\"))Fine sottotitolo |