Vba: come dividere una stringa in base a più delimitatori


È possibile utilizzare la seguente sintassi di base per dividere una stringa in base a più delimitatori in VBA:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

Questo particolare esempio divide ciascuna stringa nell’intervallo A2:A7 in base a trattini o spazi in ciascuna stringa, quindi assegna gli elementi risultanti di ciascuna stringa alle celle adiacenti nelle colonne B, C e D.

Nota : questa macro sostituisce innanzitutto ciascun trattino con uno spazio, quindi divide ciascuna stringa in base alla posizione degli spazi.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: dividere una stringa in base a più delimitatori in VBA

Supponiamo di avere il seguente elenco di nomi in Excel:

Supponiamo di voler dividere ciascun nome in base a trattini o spazi, quindi assegnare gli elementi risultanti di ciascuna stringa a nuove celle.

Per fare ciò possiamo creare la seguente macro:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

Stringa divisa VBA in base a più delimitatori

Tieni presente che questa macro divide ciascuna stringa nella colonna A in base a spazi e trattini e visualizza i singoli elementi di testo di ciascuna stringa nelle colonne B, C e D.

Nota n. 1: in questo esempio stiamo dividendo le stringhe in base a trattini e spazi, ma puoi dividere le stringhe in base a qualsiasi delimitatore desideri specificandoli nelle funzioni Sostituisci e Dividi .

Nota n.2 : puoi trovare la documentazione completa per la funzione VBA Split qui .

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 *