Vba: een string in een array splitsen (met voorbeeld)


U kunt de volgende basissyntaxis gebruiken om een tekenreeks met VBA in een array te splitsen:

 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

Dit specifieke voorbeeld verdeelt elke string in het bereik A2:A7 op basis van de spaties in elke string, en wijst vervolgens de resulterende elementen van elke string toe aan de celbereiken B2:B7 en C2:C7 .

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: VBA gebruiken om een string in een array te splitsen

Stel dat we de volgende lijst met tekenreeksen in Excel hebben:

Stel dat we elke string willen splitsen op basis van witruimte, en vervolgens de resulterende elementen van elke string aan nieuwe cellen willen toewijzen.

We kunnen hiervoor de volgende macro maken:

 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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

VBA splitst de tekenreeks op in een array

Houd er rekening mee dat de kolommen B en C de voor- en achternaam bevatten van elke volledige naam in kolom A.

Merk ook op dat u de VBA Split- functie kunt gebruiken om een array te splitsen op basis van een ander scheidingsteken.

Stel dat we bijvoorbeeld de volgende e-maillijst hebben:

Laten we zeggen dat we elke e-mail in een array willen splitsen op basis van waar het @ -symbool verschijnt.

We kunnen hiervoor de volgende macro maken:

 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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

De functie Splitsen splitst elke e-mail in kolom A op basis van het @-symbool en geeft de resulterende items weer in kolommen B en C.

Opmerking : u kunt hier de volledige documentatie voor de VBA Split- functie vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken kunt uitvoeren met VBA:

VBA: het aantal tekens in een string tellen
VBA: hoe controleer je of een string een andere string bevat?
VBA: cellen tellen met specifieke tekst

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert