Funzioni di stringhe e sottostringhe VBA

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.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave