Vba: come rimuovere caratteri da una stringa
È possibile utilizzare il metodo replace() in VBA per rimuovere caratteri da una stringa.
I seguenti esempi mostrano come utilizzare in pratica questo metodo con il seguente elenco di stringhe in Excel:
Esempio 1: utilizzare VBA per rimuovere tutte le occorrenze di caratteri in una stringa (con distinzione tra maiuscole e minuscole)
Diciamo che vogliamo rimuovere “this” da ogni stringa.
Per fare ciò possiamo creare la seguente macro:
Sub RemoveChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(Range(" A " & i), " this ", "") Next i End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
La colonna B visualizza ciascuna delle stringhe nella colonna A con ogni occorrenza di “this” rimossa.
Tieni presente che questa macro fa distinzione tra maiuscole e minuscole .
Cioè, ogni occorrenza di “questo” viene rimossa ma ogni occorrenza di “questo” viene lasciata sola.
Esempio 2: utilizzare VBA per rimuovere tutte le occorrenze di caratteri in una stringa (senza distinzione tra maiuscole e minuscole)
Diciamo che vogliamo rimuovere “this” (indipendentemente dal caso) da ogni stringa.
Per fare ciò possiamo creare la seguente macro:
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "") Next i End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
La colonna B visualizza ciascuna delle stringhe nella colonna A con ogni occorrenza di “this” rimossa.
Tieni presente che questa sostituzione non fa distinzione tra maiuscole e minuscole .
Cioè, ogni occorrenza di “this” (in maiuscolo o meno) viene rimossa.
Siamo stati in grado di ottenere questo risultato utilizzando il metodo LCase per convertire prima ogni stringa nella colonna A in lettere minuscole prima di cercare “questo” in ogni stringa.
Esempio 3: utilizzare VBA per rimuovere le prime N occorrenze di caratteri in una stringa
Diciamo che vogliamo rimuovere solo la prima occorrenza di “this” (indipendentemente dal caso) da ogni stringa.
Per fare ciò possiamo creare la seguente macro:
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "", Count:=1) Next i End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
La colonna B visualizza ciascuna delle stringhe nella colonna A rimuovendo solo la prima occorrenza di “this”.
Tieni presente che abbiamo utilizzato Count:=1 per rimuovere solo la prima occorrenza di una stringa specifica, ma puoi sostituire 1 con qualsiasi valore che desideri rimuovere al posto delle prime n occorrenze di una stringa specifica.
Nota : qui è possibile trovare la documentazione completa per il metodo VBA Sostituisci .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando VBA:
VBA: come contare le occorrenze di caratteri in una stringa
VBA: come verificare se una stringa contiene un’altra stringa
VBA: come contare le celle con testo specifico