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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *