VBA ha molte funzioni di stringa che ti permetteranno di manipolare e lavorare con testo e stringhe nel tuo codice. In questo tutorial, tratteremo le funzioni che ti permetteranno di estrarre sottostringhe dalle stringhe, rimuovere gli spazi dalle stringhe, convertire il caso di un testo o una stringa, confrontare le stringhe e altre utili funzioni di stringa.
Estrazione di una sottostringa
La funzione stringa sinistra VBA
La funzione VBA Left consente di estrarre una sottostringa da un testo o una stringa a partire dal lato sinistro. La sintassi della funzione VBA Left String è:
Left(String, Num_of_characters) dove:
- Stringa - Il testo originale.
- Num_of_characters - Un numero intero che specifica il numero di caratteri da estrarre dal testo originale a partire dall'inizio.
Il codice seguente mostra come utilizzare la funzione Left String per estrarre i primi quattro caratteri della stringa data:
1234567891011 | Sub UsingTheLeftStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Automa Excel"valoreDue = Sinistra(valoreUno, 4)MsgBox valueDueFine sottotitolo |
Il risultato è:
La funzione sinistra ha estratto le prime quattro lettere di AutomateExcel, che sono Auto.
La funzione stringa destra VBA
La funzione VBA Right consente di estrarre una sottostringa da un testo o una stringa a partire dal lato destro. La sintassi della funzione VBA Right String è:
Right(String, Num_of_characters) dove:
- Stringa - Il testo originale.
- Num_of_characters - Un numero intero che specifica il numero di caratteri da estrarre dal testo originale a partire dalla fine.
Il codice seguente mostra come utilizzare la funzione Stringa destra per estrarre gli ultimi quattro caratteri della stringa:
1234567891011 | Sub UsingTheRightStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Automa Excel"valoreDue = Destra(valoreUno, 4)MsgBox valueDueFine sottotitolo |
Il risultato è:
La funzione destra ha estratto le ultime quattro lettere di AutomateExcel, che sono xcel.
La funzione VBA Mid String
La funzione VBA Mid ti consente di estrarre una sottostringa da un testo o da una stringa, a partire da qualsiasi posizione all'interno della stringa specificata. La sintassi della funzione Mid String VBA è:
Mid(Stringa, Posizione_iniziale, [Num_of_characters]) dove:
- Stringa - Il testo originale.
- Posizione_iniziale - La posizione nel testo originale, da cui inizierà l'estrazione della funzione.
- Num_of_characters (Opzionale) - Un numero intero che specifica il numero di caratteri da estrarre dal testo originale a partire dalla posizione_iniziale. Se vuoto, la funzione MID restituirà tutti i caratteri dalla posizione_iniziale.
Il codice seguente mostra come utilizzare la funzione Mid String per estrarre quattro caratteri, a partire dalla seconda posizione o carattere nella stringa:
1234567891011 | Sub UsingTheMidStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Automa Excel"valoreDue = Mid(valoreUno, 2, 4)MsgBox valueDueFine sottotitolo |
Il risultato viene inviato a un msgbox:
La Mid Function ha estratto le quattro lettere di AutomateExcel a partire dal secondo carattere/posizione/lettera che sono utom.
Trovare la posizione di una sottostringa
La funzione VBA Instr String
La funzione VBA Instr restituisce la posizione iniziale di una sottostringa all'interno di un'altra stringa. Questa funzione fa distinzione tra maiuscole e minuscole. La sintassi della funzione VBA Instr String è:
Instr([Inizio], Stringa, Sottostringa, [Confronta]) dove:
- Cominciare (Opzionale) - Specifica la posizione iniziale della funzione da cui effettuare la ricerca. Se vuoto, viene utilizzato il valore predefinito di 1.
- Stringa - Il testo originale.
- sottostringa- La sottostringa all'interno del testo originale di cui si desidera trovare la posizione.
- Confrontare (Opzionale)- Specifica il tipo di confronto da effettuare. Se vuoto, viene utilizzato il confronto binario.
-vbBinaryCompare - Confronto binario (maiuscole e minuscole sono considerate diverse)
-vbTextCompare - Confronto di testo (maiuscole e minuscole sono considerate uguali)
-vbDatabaseCompare - Confronto database (questa opzione è utilizzata solo in Microsoft Access ed è un confronto basato sul database)
Il codice seguente mostra come utilizzare la funzione Instr String per determinare la prima occorrenza della sottostringa "Th" all'interno della stringa principale:
123456789101112 | Sub UsingTheInstrStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Questo è il testo"positionofSubstring = InStr(1, valoreUno, "Th")Debug.Print positionofSubstringFine sottotitolo |
Il risultato (in output nella finestra immediata) è:
La funzione Instr ha restituito la posizione della prima occorrenza della sottostringa "Th" che è 1. Nota che questa funzione include gli spazi nel conteggio.
La funzione VBA InstrRev String
La funzione VBA InstrRev restituisce la posizione iniziale di una sottostringa all'interno di un'altra stringa ma inizia a contare la posizione, dalla fine della stringa. Questa funzione fa distinzione tra maiuscole e minuscole. La sintassi della funzione VBA InstrRev String è:
InstrRev(Stringa, Sottostringa, [Inizio], [Confronta]) dove:
- Stringa - Il testo originale.
- sottostringa- La sottostringa all'interno del testo originale di cui si desidera trovare la posizione.
- Cominciare (Opzionale) - Specifica la posizione da cui iniziare la ricerca. Se vuoto, la funzione inizia la ricerca dall'ultimo carattere.
- Confrontare (Opzionale)- Specifica il tipo di confronto da effettuare. Se vuoto, viene utilizzato il confronto binario.
-vbBinaryCompare - Confronto binario (maiuscole e minuscole sono considerate diverse)
-vbTextCompare - Confronto di testo (maiuscole e minuscole sono considerate uguali)
-vbDatabaseCompare - Confronto database (questa opzione è utilizzata solo in Microsoft Access ed è un confronto basato sul database)
Il codice seguente mostra come utilizzare la funzione stringa InstrRev per determinare la prima occorrenza della sottostringa "Th" all'interno della stringa principale, a partire dalla fine della stringa:
1234567891011 | Sub UsingTheInstrRevStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Questo è il testo"positionofSubstring = InStrRev(valueOne, "Th")Debug.Print positionofSubstringFine sottotitolo |
Il risultato viene emesso nella finestra immediata:
La funzione InstrRev ha restituito la posizione della prima occorrenza della sottostringa "Th", ma iniziando il conteggio dalla fine che è 9. Nota che questa funzione include gli spazi nel conteggio.
Rimozione di spazi da una stringa
La funzione stringa VBA LTrim
La funzione VBA LTrim rimuove tutti gli spazi iniziali da un testo o una stringa. La sintassi della funzione VBA LTrim String è:
LTrim(Stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione VBA LTrim per rimuovere gli spazi iniziali nella stringa data:
123456789101112 | Sub UsingTheLTrimStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Questo è l'indirizzo del sito web https://easyexcel.net/excel/"valoreDue = LTrim(valoreUno)MsgBox valueOneMsgBox valueDueFine sottotitolo |
I risultati sono:
La funzione LTrim ha rimosso gli spazi iniziali per valoredue, che viene mostrato nella seconda finestra di messaggio.
La funzione VBA RTrim String
La funzione VBA RTrim rimuove tutti gli spazi finali da un testo o una stringa. La sintassi della funzione VBA RTrim String è:
RTrim(Stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione VBA RTrim per rimuovere gli spazi finali nella stringa data:
123456789101112 | Sub UsingTheRTrimStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Questo è l'indirizzo del sito web https://easyexcel.net/excel/ "valoreDue = RTrim(valoreUno)MsgBox valueOneMsgBox valueDueFine sottotitolo |
I risultati consegnati sono:
La funzione RTrim ha rimosso gli spazi finali per valuetwo, che è mostrato nella seconda Message Box.
La funzione VBA Trim String
La funzione Trim VBA rimuove tutti gli spazi iniziali e finali da un testo o una stringa. La sintassi della funzione VBA Trim String è:
Taglia (stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione Trim VBA per rimuovere gli spazi iniziali e finali nella stringa data:
123456789101112 | Sub UsingTheTrimStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Questo è l'indirizzo del sito web https://easyexcel.net/excel/ "valoreDue = Taglia(valoreUno)MsgBox valueOneMsgBox valueDueFine sottotitolo |
I risultati sono:
La funzione Trim ha rimosso gli spazi iniziali e finali per valuetwo, che viene mostrato nella seconda finestra di messaggio.
Funzioni del caso VBA
La funzione stringa VBA LCase
La funzione VBA LCase converte le lettere in un testo o una stringa in minuscolo. La sintassi della funzione stringa VBA LCase è:
LCaso(Stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione stringa LCase per convertire tutte le lettere nella stringa data in minuscolo:
1234567891011 | Sub UsingTheLCaseStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "QUESTO È IL PRODOTTO"valoreDue = LCase(valoreUno)MsgBox valueDueFine sottotitolo |
Il risultato è:
La funzione LCase ha convertito tutte le lettere nella stringa in minuscolo.
La funzione stringa UCase di VBA
La funzione VBA UCase converte le lettere in un testo o una stringa in maiuscolo. La sintassi della funzione stringa UCase VBA è:
UCase(Stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione stringa UCase per convertire tutte le lettere nella stringa data in maiuscolo:
1234567891011 | Sub UsingTheUCaseStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "questo è il prodotto"valoreDue = UCase(valoreUno)MsgBox valueDueFine sottotitolo |
Il risultato è:
La funzione UCase ha convertito tutte le lettere nella stringa in maiuscolo.
La funzione VBA StrConv
La funzione VBA StrConv può convertire le lettere in un testo o una stringa in lettere maiuscole, minuscole, maiuscole o unicode a seconda del tipo di conversione specificato. La sintassi della funzione stringa VBA StrConv è:
StrConv(Stringa, Conversione, [LCID]) dove:
- Stringa - Il testo originale.
- Conversione: il tipo di conversione che desideri.
- [LCID] (Facoltativo) -Un parametro facoltativo che specifica LocaleID. Se vuoto, viene utilizzato il LocaleID di sistema.
Il codice seguente mostra come utilizzare la funzione StrConv String per convertire la stringa nel caso corretto:
1234567891011 | Sub UsingTheStrConvStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "questo è IL prodotto"valoreDue = StrConv(valoreUno, vbProperCase)MsgBox valueDueFine sottotitolo |
Il risultato è:
Specifichi il tipo di conversione che desideri eseguire utilizzando il parametro di conversione:
- vbLowerCase converte tutte le lettere nel testo in minuscolo.
- vbUpperCase converte tutte le lettere nel testo in maiuscolo.
- vbProperCase converte la prima lettera di ogni parola nel testo in maiuscolo, mentre tutte le altre lettere vengono mantenute in minuscolo.
- vbUnicode converte una stringa in unicode.
- vbFromUnicode converte una stringa da unicode alla tabella codici predefinita del sistema.
Stringhe a confronto
La funzione VBA StrComp
La funzione VBA StrComp String consente di confrontare due stringhe. La funzione restituisce:
- 0 se le due stringhe corrispondono
- -1 se stringa1 è minore di stringa2
- 1 se stringa1 è maggiore di stringa2
- Un valore null se una delle stringhe era Null
Il codice seguente mostra come utilizzare la funzione StrComp per confrontare due stringhe:
123456789101112 | Sub UsingTheStrCompStringFunction()Dim valueOne As StringValore attenuatoDue come stringaRisultato debole del confronto come numero interovalueOne = "Automa Excel"valueTwo = "Automa Excel"risultato di confronto = StrComp(valoreUno, valoreDue)Debug.Stampa risultato del confrontoFine sottotitolo |
Il risultato è:
La funzione StrComp ha trovato una corrispondenza esatta tra le due stringhe e ha restituito 0.
L'operatore VBA Like
L'operatore VBA Like ti consente di confrontare un testo o una stringa con un modello e vedere se c'è una corrispondenza. Di solito useresti l'operatore Like insieme ai caratteri jolly. Il codice seguente mostra come utilizzare l'operatore Like:
123456789101112 | Sub UsingTheLikeOperatorInVBA()Dim valueOne As StringvalueOne = "Vediamo l'output"Se valueOne Like "*view*" ThenMsgBox "C'è una corrispondenza, questa stringa contiene la parola vista"AltroMsgBox "Nessuna corrispondenza trovata"Finisci seFine sottotitolo |
Il risultato è:
I caratteri jolly che puoi utilizzare con l'operatore Like per trovare corrispondenze di pattern includono:
- ? che corrisponde a un singolo carattere
- # che corrisponde a una singola cifra
- * che corrisponde a zero o più caratteri
Il codice seguente mostra come utilizzeresti l'operatore Like e il ? carattere jolly per abbinare un modello nel codice:
123456789101112 | Sub UsingTheLikeOperatorWithAWildcardInVBA()Dim valueOne As StringvaloreUno = "Il"Se valoreUno come "??e" AlloraMsgBox "C'è una corrispondenza, è stato trovato un modello di corrispondenza"AltroMsgBox "Nessuna corrispondenza trovata"Finisci seFine sottotitolo |
Il risultato consegnato è:
Altre utili funzioni di stringa VBA
La funzione VBA Sostituisci stringa
La funzione di sostituzione VBA sostituisce un set di caratteri in una stringa con un altro set di caratteri. La sintassi della funzione VBA Replace String è:
Sostituisci(Stringa, Trova, Sostituisci, [Inizio], [Conta], [Confronta]) dove:
- Stringa - Il testo originale.
- Trova - La sottostringa da cercare all'interno del testo originale.
- Sostituisci - La sottostringa con cui sostituire la sottostringa Trova.
- Cominciare (Opzionale)- La posizione per iniziare la ricerca dall'interno del testo originale. Se vuoto, viene utilizzato il valore 1 e la funzione inizia dalla posizione del primo carattere.
- Contare (Opzionale)- Il numero di occorrenze della sottostringa Trova nel testo originale da sostituire. Se vuoto, vengono sostituite tutte le occorrenze della sottostringa Trova.
- Confrontare (Opzionale)- Specifica il tipo di confronto da effettuare. Se vuoto, viene utilizzato il confronto binario.
-vbBinaryCompare - Confronto binario
-vbTextCompare - Confronto di testi
-vbDatabaseCompare - Confronto database (questa opzione viene utilizzata solo in Microsoft Access ed è un confronto basato sul database).
Il codice seguente mostra come utilizzare la funzione Replace String:
1234567891011 | Sub UsingTheReplaceStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "ProdottoABC"valoreDue = Sostituisci(valoreUno, "ABC", "XYZ")MsgBox valueDueFine sottotitolo |
Il risultato è:
La funzione Replace ha trovato la sottostringa ABC all'interno di ProductABC e l'ha sostituita con la sottostringa XYZ.
La funzione VBA StrReverse
La funzione VBA StrReverse inverte i caratteri in un determinato testo o stringa. La sintassi della funzione stringa VBA StrReverse è:
StrReverse(Stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione VBA StrReverse per invertire i caratteri nella stringa Product:
1234567891011 | Sub UsingTheStrReverseStringFunction()Dim valueOne As StringValore attenuatoDue come stringavalueOne = "Prodotto"valoreDue = StrReverse(valoreUno)MsgBox valueDueFine sottotitolo |
Il risultato è:
La funzione VBA Len String
La funzione Len VBA restituisce il numero di caratteri in una stringa di testo. La sintassi della funzione VBA Len String è:
Len(Stringa) dove:
- Stringa - Il testo originale.
Il codice seguente mostra come utilizzare la funzione Len String per determinare la lunghezza della stringa AutomateExcel:
1234567891011 | Sub UsingTheLenFunction()Dim valueOne As StringDim stringLength As IntegervalueOne = "Automa Excel"stringaLength = Len(valueUno)Debug.Print stringLengthFine sottotitolo |
Il risultato è:
La funzione Len ha contato tutti i caratteri nel testo AutomateExcel, che è di 13 lettere.