Indholdsfortegnelse
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.xlsm3 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 på 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 på VBA til at opdele en streng i et array af elementer. Har du spørgsmål? Du er velkommen til at spørge os.