VBA Split String in Array

Excel VBA delad sträng i matris

En sträng är en samling av tecken som är sammanfogade, när dessa tecken delas upp och lagras i en variabel blir variabeln en array för dessa tecken och metoden vi använder för att dela en sträng för att göra till en array är med SPLIT-funktionen vba som delar strängen i en endimensionell sträng.

Liksom kalkylblad i VBA har vi också funktioner för att hantera sträng- eller textvärden. Vi är mycket bekanta med strängoperationerna som att extrahera firnamn, efternamn, mellannamn etc. Men vad sägs om idén att dela upp strängvärde i arrayer i VBA? Ja, du hörde det rätta, vi kan dela strängmeningen i arrayen med hjälp av VBA-kodning och i den här speciella artikeln visar vi dig hur du delar strängen i en array i Excel VBA.

Vad är delad sträng i en matris?

Låt mig först klargöra detta, "String into Array" är inget annat än "olika delar av meningen eller strängen kommer att delas upp i flera delar". Till exempel, om meningen är "Bangalore är huvudstaden i Karnataka" så är varje ord en annan grupp.

Så, hur man delar upp denna mening i matrisen är ämnet för denna artikel.

Hur konverterar man delad sträng till en matris i Excel VBA?

För att konvertera splitsträngen till en array i VBA har vi en funktion som heter “SPLIT”. Detta är en VBA-funktion som utför uppgiften att dela upp levererat strängvärde till olika delar baserat på den angivna avgränsaren.

Om meningen till exempel är ”Bangalore är huvudstaden i Karnataka” är avgränsningen mellan varje ord.

Nedan är syntaxen för SPLIT-funktionen.

  • Värde eller uttryck: Detta är sträng- eller textvärdet som vi försöker konvertera till matrisen genom att separera varje del av strängen.
  • [Avgränsare]: Detta är inget annat än de vanliga sakerna som skiljer varje ord i strängen. I vår mening ”Bangalore är huvudstaden i Karnataka” separeras varje ord med rymdkaraktär så vår avgränsare är utrymme här.
  • [Limit]: Limit är inget annat än hur många delar vi vill ha som resultat. För ett exempel i meningen ”Bangalore är huvudstaden i Karnataka” har vi sju delar om vi bara behöver tre delar så får vi den första delen som “Bangalore”, den andra delen som “är” och tredje delen som resten av meningen dvs ”huvudstaden Karnataka”.
  • [Jämför]: Detta används inte 99% av tiden, så låt oss inte röra vid detta vid denna tidpunkt.
Du kan ladda ner den här VBA-delad strängen i Array Excel-mall här - VBA-delad strängen till den matris Excel-mallen

Exempel nr 1

Ok, nu ska vi se praktiska exempel.

Steg 1: Definiera VBA-variabeln för att hålla strängvärdet.

Koda:

 Sub String_To_Array () Dim StringValue As String End Sub 

Steg 2: Tilldela strängen "Bangalore är huvudstaden i Karnataka" för denna variabel.

Koda:

 Sub String_To_Array () Dim StringValue Som String StringValue = "Bangalore är huvudstaden i Karnatka" End Sub 

Steg 3: Definiera sedan ytterligare en variabel som kan innehålla varje del av ovanstående strängvärde. På detta måste vi komma ihåg här är eftersom meningen har mer än ett ord måste vi definiera variabeln som "Array" för att innehålla mer än ett värde.

I det här fallet har vi 7 ord i strängen, så definiera matrisen enligt följande.

Koda:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore är huvudstaden i Karnatka" Dim SingleValue () Som String End Sub 

Nu för denna arrayvariabel använder vi SPLIT-funktionen för att dela upp strängen i en array i Excel VBA.

Koda:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore är huvudstaden i Karnataka" Dim SingleValue () Som String SingleValue = Split (StringValue, "") End Sub 

Uttrycket är vårt strängvärde, dvs. variabeln innehåller redan strängvärdet så skriv bara in variabelnamnet.

Avgränsaren i denna sträng är mellanslagstecken så ge samma.

Koda:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore är huvudstaden i Karnataka" Dim SingleValue () Som String SingleValue = Split (StringValue, "") End Sub 

Från och med nu lämnar du andra delar av SPLIT-funktionen.

SPLIT-funktionen delade strängvärdet i 7 delar varje ord segregerat på bekostnad av mellanslagstecken. Eftersom vi har deklarerat variabeln "SingleValue" som array kan vi tilldela alla de 7 värdena till denna variabel.

Vi kan skriva koden enligt följande.

Koda:

 Sub String_To_Array () Dim StringValue Som StringValue = "Bangalore är huvudstaden i Karnataka" Dim SingleValue () Som String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Kör koden och se vad vi får i meddelandefältet.

Från och med nu kan vi se det första ordet, dvs "Bangalore" för att visa ytterligare ord, vi kan skriva koden enligt följande.

Koda:

 Sub String_To_Array () Dim StringValue Som String StringValue = "Bangalore är huvudstaden i Karnataka" Dim SingleValue () Som String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vBal (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Kör nu koden och se vad vi får i meddelandefältet.

Varje ord har delats upp i matriser.

Exempel 2

Föreställ dig nu en situation med att lagra dessa värden i celler, dvs. varje ord i en separat cell. För detta måste vi inkludera FOR NEXT-slingan i VBA.

Koden nedan infogar varje ord i separata celler.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore är huvudstaden i Karnataka" Dim SingleValue () Som String SingleValue = Split (StringValue, "") Dim k Som heltal För k = 1 till 7 celler (1, k) .Value = SingleValue (k - 1) Next k End Sub 

Detta infogar varje ord som visas i bilden nedan.

Saker att komma ihåg

  • Array och loopar används tillsammans för att göra koden dynamisk.
  • SPLIT-funktionen kräver gemensam avgränsare som skiljer varje ord i meningen.
  • Matrislängden börjar från noll, inte från 1.