Sådan opdeles en streng i et array i VBA (3 måder)

  • Del Dette
Hugh West

I denne artikel vil jeg vise dig, hvordan du kan opdele en streng i et array i VBA . Split er en af de vigtigste og mest udbredte funktioner, som vi bruger i VBA . Du lærer at opdele en streng i VBA på alle mulige måder.

VBA Split-funktion (hurtig visning)

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

Download arbejdsbog til øvelser

Opdeling af en streng i en array.xlsm

3 måder at opdele en streng i et array på i VBA

Lad os have en snor i hånden "Vi har ansøgt om visum fra USA, Canada, Australien og Frankrig." .

Jeg vil vise dig, hvordan du kan opdele denne streng i et array på alle mulige måder ved hjælp af Split-funktion VBA .

1. Brug en vilkårlig afgrænser til at opdele en streng i et array i VBA

Du kan bruge en vilkårlig streng som afgrænser til at opdele en streng i et array i VBA .

Det kan være en mellemrum (" ") , a komma (",") , a semikolon (":") , et enkelt tegn, en streng af tegn eller hvad som helst.

Eksempel 1:

Lad os opdele strengen ved hjælp af komma som afgrænser.

Koderækken vil være:

Arr = Split(Tekst, ",")

Den komplette VBA-kode vil være:

VBA-kode:

 Sub Split_String() Text = "Vi har ansøgt om visum til USA, Canada, Australien og Frankrig." Arr = Split(Text, ",") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Output:

Den opdeler strengen i et array bestående af {"Vi har ansøgt om visum fra USA", " Canada", " Australien", " Frankrig"}.

Eksempel 2:

Du kan også bruge en mellemrum (" ") som afgrænser.

Koderækken vil være:

Arr = Split(Text, " ")

Den komplette VBA-kode vil være:

VBA-kode:

 Sub Split_String() Text = "Vi har ansøgt om visum til USA, Canada, Australien og Frankrig." Arr = Split(Text, " ") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Output:

Den opdeler strengen i et array bestående af {"Vi", "ansøgte", "for", "den", "visum", "af", "USA", "Canada", "Australien", "Frankrig", "Frankrig" }.

Ting, du skal huske:

  • Standardafgrænseren er et mellemrum (" ") .
  • Det vil sige, at hvis du ikke indsætter nogen afgrænser, vil den bruge en rum som afgrænser.

Læs mere: Opdele streng efter tegn i Excel (6 passende måder)

Lignende læsninger:

  • Opdele tekst i flere celler i Excel
  • VBA til at hente unikke værdier fra kolonne til array i Excel (3 kriterier)
  • Excel VBA: Sådan filtreres med flere kriterier i Array (7 måder)

2. Opdel en streng i en array med et vilkårligt antal elementer

Du kan opdele en streng i et array med et vilkårligt antal elementer efter dit ønske.

Indsæt antallet af poster som 3. argumentet i den Split-funktion .

Eksempel:

Lad os opdele strengen i den første 3 varer med en rum som afgrænser.

Koderækken vil være:

Arr = Split(Tekst, " ", 3)

Og den VBA-kode vil være:

VBA-kode:

 Sub Split_String() Text = "Vi har ansøgt om visum til USA, Canada, Australien og Frankrig." Arr = Split(Text, " ", 3) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub 

Output:

Den opdeler strengen i et array bestående af den første 3 elementer adskilt af afgrænseren rum .

Ting, du skal huske:

  • Standardargumentet er -1 .
  • Det betyder, at hvis du ikke indtaster argumentet, vil den opdele strengen i det maksimale antal gange som muligt.

Læs mere: Sådan Split String efter længde i Excel (8 måder)

3. Brug både case-sensitive og insensitive delimiter til at opdele en streng og en array i VBA

Split-funktion giver dig mulighed for at bruge både en skraldefølsom og skift mellem store og små bogstaver afgrænser.

For en skift mellem store og små bogstaver afgrænser, indsæt 4. argument som 1.

Og for en skift mellem store og små bogstaver afgrænser, indsæt 4. argument som 0 .

Eksempel 1: Delimiter, der tager hensyn til store og små bogstaver

I den givne streng kan vi se på teksten "FOR" som afgrænser og 2 som det samlede antal elementer i arrayet.

Nu, for en skift mellem store og små bogstaver tilfælde, vil kodelinjen være:

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

Og den komplette VBA-kode vil være:

VBA-kode:

 Sub Split_String() Text = "Vi har ansøgt om visum til USA, Canada, Australien og Frankrig." 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 

Output:

Da afgrænseren er skift mellem store og små bogstaver her, den "FOR" vil fungere som "for" og den opdeler strengen i et array med to elementer.

Eksempel 2: Delimiter, der tager hensyn til store og små bogstaver

Igen, for en skraldefølsom tilfælde, vil kodelinjen være:

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

Og den komplette VBA-kode vil være:

VBA-kode:

 Sub Split_String() Text = "Vi har ansøgt om visum til USA, Canada, Australien og Frankrig." 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 

Output:

Da afgrænseren er skraldefølsom her, den "FOR" vil ikke som "for" og den vil ikke opdele strengen i et array af to elementer.

Læs mere: Excel VBA: Fjern dubletter fra et array (2 eksempler)

Ting, du skal huske:

  • Standardværdien for argumentet er 0 .
  • Det vil sige, at hvis du ikke sætter værdien af den 4. argumentet, vil det fungere for en skraldefølsom match.

Konklusion

Derfor kan du ved hjælp af disse metoder bruge Split-funktion VBA til at opdele en streng i et array af elementer. Har du spørgsmål? Du er velkommen til at spørge os.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.