Hur du delar en sträng i en matris i VBA (3 sätt)

  • Dela Detta
Hugh West

I den här artikeln visar jag hur du kan dela upp en sträng i en array i VBA . Split är en av de viktigaste och mest använda funktionerna som vi använder i VBA Du lär dig att dela upp en sträng i VBA på alla möjliga sätt.

VBA Split-funktion (snabbvisning)

=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])

Ladda ner övningsboken

Dela en sträng till en array.xlsm

3 sätt att dela upp en sträng i en matris i VBA

Låt oss ha ett snöre i handen "Vi ansökte om visum från USA, Kanada, Australien och Frankrike." .

Jag ska visa dig hur du kan dela upp strängen i en array på alla möjliga sätt med hjälp av Split-funktion VBA .

1. Använd valfri avgränsare för att dela upp en sträng i en matris i VBA

Du kan använda vilken sträng som helst som avgränsare för att dela upp en sträng i en array i VBA .

Det kan vara en mellanslag (" ") , a kommatecken (",") , a semikolon (":") , ett enskilt tecken, en teckensträng eller vad som helst.

Exempel 1:

Låt oss dela strängen med hjälp av kommatecken som avgränsare.

Kodraden kommer att vara:

Arr = Split(Text, ",")

Den fullständiga VBA-kod kommer att vara:

VBA-kod:

 Sub Split_String() Text = "Vi ansökte om visum för USA, Kanada, Australien och Frankrike." Arr = Split(Text, ",") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Utgång:

Den delar upp strängen i en matris som består av {"Vi ansökte om visum för USA", " Kanada", " Australien", " Frankrike"}.

Exempel 2:

Du kan också använda en mellanslag (" ") som avgränsare.

Kodraden kommer att vara:

Arr = Split(Text, " ")

Den fullständiga VBA-kod kommer att vara:

VBA-kod:

 Sub Split_String() Text = "Vi ansökte om visum för USA, Kanada, Australien och Frankrike." Arr = Split(Text, " ") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Utgång:

Den delar upp strängen i en matris som består av {"Vi", "ansökte", "för", "den", "visum", "av", "USA", "Kanada", "Australien", "Frankrike", "Frankrike" }.

Saker att komma ihåg:

  • Standardavgränsaren är ett mellanslag (" ") .
  • Det vill säga, om du inte infogar någon avgränsare kommer den att använda en utrymme som avgränsare.

Läs mer: Dela strängar efter tecken i Excel (6 lämpliga sätt)

Liknande läsningar:

  • Dela upp text i flera celler i Excel
  • VBA för att hämta unika värden från kolumnen till matrisen i Excel (3 kriterier)
  • Excel VBA: Hur man filtrerar med flera kriterier i en matris (7 sätt)

2. Dela en sträng till en array med valfritt antal objekt

Du kan dela upp en sträng i en array med ett valfritt antal objekt enligt dina önskemål.

Lägg in antalet artiklar som 3:e argumentet i den Split-funktion .

Exempel:

Låt oss dela upp strängen i den första 3 objekt med en utrymme som avgränsare.

Kodraden kommer att vara:

Arr = Split(Text, " ", 3)

Och den VBA-kod kommer att vara:

VBA-kod:

 Sub Split_String() Text = "Vi ansökte om visum för USA, Kanada, Australien och Frankrike." Arr = Split(Text, " ", 3) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Utgång:

Den delar upp strängen i en matris som består av den första 3 poster separerade med avgränsaren utrymme .

Saker att komma ihåg:

  • Standardargumentet är -1 .
  • Det betyder att om du inte anger argumentet kommer den att dela strängen i så många gånger som möjligt.

Läs mer: Hur man delar strängar efter längd i Excel (8 sätt)

3. Använd både skiftlägeskänslig och osensitiv avgränsare för att dela upp en sträng och en matris i VBA

Split-funktion ger dig möjlighet att använda både en Skiftlägeskänslig och Skiftlägeskänslig avgränsare.

För en Skiftlägeskänslig avgränsare, infoga 4:e argumentet som 1.

Och för en Skiftlägeskänslig avgränsare, infoga 4:e argumentet som 0 .

Exempel 1: Delimiter som tar hänsyn till stor- och småbokstäver

I den givna strängen, låt oss betrakta texten "FÖR" som avgränsare och 2 som det totala antalet poster i matrisen.

För en Skiftlägeskänslig I detta fall kommer kodraden att vara:

Arr = Split(Text, "FOR ", 3,1)

Och den fullständiga VBA-kod kommer att vara:

VBA-kod:

 Sub Split_String() Text = "Vi ansökte om visum för USA, Kanada, Australien och Frankrike." Arr = Split(Text, "FOR", 2, 1) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Utgång:

Eftersom avgränsaren är Skiftlägeskänslig här, den "FÖR" kommer att fungera som "för" och den delar strängen i en array med två objekt.

Exempel 2: Skiftlägeskänslig avgränsare

För en Skiftlägeskänslig I detta fall kommer kodraden att vara:

Arr = Split(Text, "FOR ", 3,0)

Och den fullständiga VBA-kod kommer att vara:

VBA-kod:

 Sub Split_String() Text = "Vi ansökte om visum för USA, Kanada, Australien och Frankrike." Arr = Split(Text, "FOR", 2, 0) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Utgång:

Eftersom avgränsaren är Skiftlägeskänslig här, den "FÖR" inte som "för" och den delar inte upp strängen i en matris med två objekt.

Läs mer: Excel VBA: Ta bort dubbletter från en matris (2 exempel)

Saker att komma ihåg:

  • Standardvärdet för argumentet är 0 .
  • Det vill säga, om du inte anger värdet på 4:e argumentet, kommer det att fungera för en Skiftlägeskänslig match.

Slutsats

Med dessa metoder kan du därför använda Split-funktion VBA för att dela upp en sträng i en matris av objekt. Har du några frågor? Du kan gärna ställa dem till oss.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.