Vba: come dividere una stringa in un array (con esempio)


È possibile utilizzare la seguente sintassi di base per dividere una stringa in un array utilizzando VBA:

 SubSplitString ()

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

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

Questo particolare esempio divide ogni stringa nell’intervallo A2:A7 in base agli spazi in ciascuna stringa, quindi assegna gli elementi risultanti di ciascuna stringa agli intervalli di celle B2:B7 e C2:C7 .

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

Esempio: utilizzo di VBA per dividere una stringa in un array

Supponiamo di avere il seguente elenco di stringhe in Excel:

Supponiamo di voler dividere ogni stringa in base agli spazi bianchi, quindi assegnare gli elementi risultanti di ciascuna stringa a nuove celle.

Per fare ciò possiamo creare la seguente macro:

 SubSplitString ()

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

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

Quando eseguiamo questa macro, riceviamo il seguente output:

VBA divide la stringa in un array

Tieni presente che le colonne B e C contengono il nome e il cognome di ciascun nome completo nella colonna A.

Tieni inoltre presente che puoi utilizzare la funzione VBA Split per dividere un array in base a un delimitatore diverso.

Ad esempio, supponiamo di avere la seguente lista di posta elettronica:

Diciamo che vogliamo dividere ogni email in un array in base a dove appare il simbolo @ .

Per fare ciò possiamo creare la seguente macro:

 SubSplitString ()

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

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

Quando eseguiamo questa macro, riceviamo il seguente output:

La funzione Dividi divide ciascuna email nella colonna A in base al simbolo @ e visualizza gli elementi risultanti nelle colonne B e C.

Nota : qui è possibile trovare la documentazione completa per la funzione VBA Split .

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 *