Inhoudsopgave
In dit artikel laat ik zien hoe je een string kunt splitsen in een array in VBA . Gesplitst is een van de belangrijkste en meest gebruikte functies die we gebruiken in VBA Je leert een string te splitsen in VBA op alle mogelijke manieren.
VBA splitsingsfunctie (snelle weergave)
=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])
Download Praktijk Werkboek
Een string splitsen in een array.xlsm3 manieren om een string in een array te splitsen in VBA
Laten we een touwtje in onze hand houden "We hebben visa aangevraagd voor de VS, Canada, Australië en Frankrijk." .
Ik zal je laten zien hoe je deze string kunt splitsen in een array op alle mogelijke manieren met behulp van de Splitsingsfunctie van VBA .
1. Gebruik een willekeurig scheidingsteken om een tekenreeks in een matrix te splitsen in VBA
U kunt een willekeurige tekenreeks gebruiken als scheidingsteken om een tekenreeks te splitsen in een matrix in VBA .
Het kan een spatie (" ") , a komma (",") , a puntkomma (":") een enkel karakter, een reeks karakters, of wat dan ook.
⧭ Voorbeeld 1:
Laten we de string splitsen met de komma als scheidingsteken.
De regel code zal zijn:
Arr = Split(Text, ",")
De volledige VBA-code zal zijn:
⧭ VBA-code:
Sub Split_String() Tekst = "We hebben een visum aangevraagd voor de VS, Canada, Australië en Frankrijk." Arr = Split(Text, ",") Uitvoer = "" Voor i = 0 Tot UBound(Arr) Uitvoer = Uitvoer + vbNewLine + vbNewLine + Arr(i) Volgende i MsgBox Uitvoer End Sub
⧭ Uitgang:
Het splitst de string in een array bestaande uit {"We hebben een visum aangevraagd voor de VS", "Canada", "Australië", "Frankrijk".}
⧭ Voorbeeld 2:
U kunt ook een spatie (" ") als scheidingsteken.
De regel code zal zijn:
Arr = Split(Text, " ")
De volledige VBA-code zal zijn:
⧭ VBA-code:
Sub Split_String() Tekst = "We hebben een visum aangevraagd voor de VS, Canada, Australië en Frankrijk." Arr = Split(Text, " ") Output = "" Voor i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Volgende i MsgBox Output End Sub
⧭ Uitgang:
Het splitst de string in een array bestaande uit {"We", "applied", "for", "the", "visa", "of", "U.S,", "Canada,", "Australia,", "France,"}.
⧭ Dingen om te onthouden:
- Het standaard scheidingsteken is een spatie (" ") .
- Dat wil zeggen, als u geen scheidingsteken invoegt, zal het een ruimte als scheidingsteken.
Lees meer: String splitsen per karakter in Excel (6 geschikte manieren)
Vergelijkbare lezingen:
- Tekst splitsen in meerdere cellen in Excel
- VBA om unieke waarden uit een kolom in een matrix in Excel te krijgen (3 criteria)
- Excel VBA: Filteren met meerdere criteria in een matrix (7 manieren)
2. Een string splitsen in een array met een willekeurig aantal items
U kunt een string splitsen in een array met elk gewenst aantal items.
Voeg het aantal items in als de 3e argument van de Splitsingsfunctie .
⧭ Voorbeeld:
Laten we de string splitsen in de eerste 3 items met een ruimte als scheidingsteken.
De regel code zal zijn:
Arr = Split(Text, " ", 3)
En de VBA-code zal zijn:
⧭ VBA-code:
Sub Split_String() Tekst = "We hebben een visum aangevraagd voor de VS, Canada, Australië en Frankrijk." Arr = Split(Text, " ", 3) Output = "" Voor i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Volgende i MsgBox Output End Sub
⧭ Uitgang:
Het splitst de string in een array bestaande uit de eerste 3 items gescheiden door het scheidingsteken ruimte .
⧭ Dingen om te onthouden:
- Het standaardargument is -1 .
- Dat betekent dat als je het argument niet invoert, het de string in het maximaal mogelijke aantal keren zal splitsen.
Lees meer: Hoe te splitsen String door lengte in Excel (8 manieren)
3. Zowel hoofdlettergevoelige als ongevoelige scheidingstekens gebruiken om een string of array te splitsen in VBA
De Splitsingsfunctie biedt u de mogelijkheid om zowel een hoofdlettergevoelig en hoofdletterongevoelig scheidingsteken.
Voor een hoofdletterongevoelig scheidingsteken, voeg de 4e argument als 1.
En voor een hoofdletterongevoelig scheidingsteken, voeg de 4e argument als 0 .
⧭ Voorbeeld 1: Hoofdlettergevoelig scheidingsteken
Laten we in de gegeven string de tekst "VOOR" als scheidingsteken en 2 als het totale aantal items van de matrix.
Nu, voor een hoofdletterongevoelig geval zal de regel code zijn:
Arr = Split(Text, "FOR ", 3,1)
En de volledige VBA-code zal zijn:
⧭ VBA-code:
Sub Split_String() Tekst = "We hebben een visum aangevraagd voor de VS, Canada, Australië en Frankrijk." Arr = Split(Text, "FOR", 2, 1) Output = "" Voor i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Uitgang:
Aangezien het scheidingsteken hoofdletterongevoelig hier, de "VOOR" zal werken als "voor" en het zal de string splitsen in een array van twee items.
⧭ Voorbeeld 2: Hoofdlettergevoelig scheidingsteken
Nogmaals, voor een hoofdlettergevoelig geval zal de regel code zijn:
Arr = Split(Text, "FOR ", 3,0)
En de volledige VBA-code zal zijn:
⧭ VBA-code:
Sub Split_String() Tekst = "We hebben een visum aangevraagd voor de VS, Canada, Australië en Frankrijk." Arr = Split(Text, "FOR", 2, 0) Output = "" Voor i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Uitgang:
Aangezien het scheidingsteken hoofdlettergevoelig hier, de "VOOR" zal niet als "voor" en het zal de string niet splitsen in een array van twee items.
Lees meer: Excel VBA: Duplicaten verwijderen uit een matrix (2 voorbeelden)
⧭ Dingen om te onthouden:
- De standaardwaarde van het argument is 0 .
- Dat wil zeggen, als je de waarde van de 4e argument, zal het werken voor een hoofdlettergevoelig wedstrijd.
Conclusie
Daarom kunt u met deze methoden de Splitsingsfunctie van VBA om een string te splitsen in een array van items. Heb je vragen? Stel ze gerust.