VBA delad sträng i matris - Hur delar jag sträng i array i Excel VBA?

Innehållsförteckning

Excel VBA delad sträng i matris

En sträng är en samling 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ängoperationer som att extrahera firnamn, efternamn, mellannamn etc. Men vad sägs om tanken att dela upp strängvärdet i matriser i VBA? Ja, du hörde det rätta, vi kan dela strängsätt i array 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 den här meningen i matrisen är ämnet för denna artikel.

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

För att konvertera den delade strä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 i olika delar baserat på den angivna avgränsaren.

Till exempel, om meningen är "Bangalore är huvudstaden i Karnataka", är mellanslag avgränsare 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.

Exempel 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: För denna variabel tilldela strängen "Bangalore är huvudstaden i Karnataka."

Koda:

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

Steg 3: Därefter definierar du 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 variabel innehåller redan strängvärdet så ange endast variabelnamnet.

Avgränsaren i den här strängen ä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 segregeras 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 As String StringValue = "Bangalore är huvudstaden i Karnataka" Dim SingleValue () As 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 kan vi 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) & vbN (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.

Intressanta artiklar...