VBA osztott húr tömbre Hogyan lehet felosztani a karakterláncot tömbre az Excel VBA-ban?

Az Excel VBA felosztja a karakterláncot tömbre

A karaktersorozat összefűzött karakterek gyűjteménye, amikor ezeket a karaktereket felosztják és egy változóban tárolják, akkor ez a változó tömb lesz ezeknek a karaktereknek, és az a módszer, amelyet egy sztring tömbgé történő felosztásához használunk az SPLIT függvény használatával vba, amely a karakterláncot egydimenziós karakterláncra osztja.

Hasonlóan a VBA munkalapjaihoz, a String vagy a Text értékekkel is foglalkozunk. Nagyon jól ismerjük a karakterlánc műveleteket, mint például a fenyő név, a vezetéknév, a középső név stb. Kivonása. De mit szólnál ahhoz, hogy a string értékét tömbökre osztanánk a VBA-ban? Igen, jól hallottad, a VBA kódolással fel tudjuk osztani a karakterláncokat tömbre, és ebben a speciális cikkben megmutatjuk, hogyan kell felosztani a karakterláncot tömbre az Excel VBA-ban.

Mi a Split String egy tömb?

Először hadd tisztázzam ezt: A „String into Array” nem más, mint „a mondat vagy a string különböző részei több részre lesznek osztva”. Például, ha a mondat „Bangalore Karnataka fővárosa”, akkor minden szó más tömb.

Tehát, hogyan lehet ezt a mondatot tömbre osztani, ez a cikk témája.

Hogyan lehet átalakítani a megosztott karakterláncot tömbgé az Excel VBA-ban?

Az osztott karakterlánc tömbgé alakításához a VBA-ban van egy „SPLIT” nevû függvényünk. Ez egy VBA függvény, amely elvégzi azt a feladatot, hogy a megadott karakterláncot különböző részekre bontsa a megadott elválasztó alapján.

Például, ha a mondat „Bangalore Karnataka fővárosa”, a szó az elválasztó jel az egyes szavak között.

Az alábbiakban látható az SPLIT függvény szintaxisa.

  • Érték vagy kifejezés: Ez az a karaktersorozat vagy szövegérték, amelyet megpróbálunk tömbgé konvertálni a sztring minden részének elkülönítésével.
  • (Elhatároló): Ez nem más, mint a közös dolgok, amelyek elválasztják az egyes szavakat a karakterláncban. A „Bangalore Karnataka fővárosa” mondatunkban minden szót szóközzel elválasztunk, így határolónk itt a tér.
  • (Limit): A limit nem más, mint hogy hány alkatrészt akarunk ennek eredményeként. Például a „Bangalore Karnataka fővárosa” mondatban hét részből állunk, ha csak három részre van szükségünk, akkor az első részt „Bangalore” -ként, a második részt „van” -ként, a harmadik részt pedig a többi részként kapjuk meg. a mondat, azaz „Karnataka fővárosa”.
  • (Összehasonlítás): Ezt nem használják az esetek 99% -ában, ezért ne nyúljunk ehhez az idő ezen a pontján.

1. példa

Ok, most nézzünk gyakorlati példákat.

1. lépés: Adja meg a VBA változót a karakterlánc értékének megtartásához.

Kód:

Sub String_To_Array () Dim StringValue, mint String End Sub

2. lépés: Ehhez a változóhoz rendelje hozzá a „Bangalore Karnataka fővárosa” karakterláncot.

Kód:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore Karnatka fővárosa" End Sub

3. lépés: Ezután adjon meg még egy változót, amely megtarthatja a fenti karakterlánc egyes részeit. Erről azt kell szem előtt tartanunk, hogy mivel a mondatnak egynél több szava van, akkor a változót tömbként kell meghatároznunk, hogy több értéket is megtarthassunk.

Ebben az esetben 7 szó van a karakterláncban, ezért a tömböt a következőképpen határozza meg.

Kód:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore Karnatka fővárosa" Dim SingleValue () As String End Sub

Ehhez a tömbváltozóhoz az SPLIT függvényt használjuk a karaktersorozat tömbre bontására az Excel VBA-ban.

Kód:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore Karnataka fővárosa" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

A kifejezés a karakterláncunk értéke, vagyis a változó már megtartja a karakterlánc értékét, ezért csak a változó nevét írja be.

A karakterlánc határolója szóköz karakter, tehát adja meg ugyanazt.

Kód:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore Karnataka fővárosa" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

Mostantól hagyja el az SPLIT funkció többi részét.

Az SPLIT függvény a karaktersorozat értékét 7 darabra osztotta, mindegyik szó elkülönítve a szóköz karakterének kárára. Mivel a „SingleValue” változót tömbként deklaráltuk , mind a 7 értéket hozzárendelhetjük ehhez a változóhoz.

A kódot az alábbiak szerint írhatjuk fel.

Kód:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore Karnataka fővárosa" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub

Futtassa a kódot, és nézze meg, mit kapunk az üzenet mezőben.

Mostantól láthatjuk az első szót, vagyis a „Bangalore” szót. A további szavak megjelenítéséhez a következőképpen írhatjuk a kódot.

Kód:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore Karnataka fővárosa" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub

Most futtassa a kódot, és nézze meg, mit kapunk az üzenet mezőben.

Minden szót tömbökre osztottak.

2. példa

Most képzeljen el egy olyan helyzetet, amikor ezeket az értékeket cellákba tárolja, azaz minden szót külön cellába tárol. Ehhez be kell építenünk a FOR NEXT ciklust a VBA-ba.

Az alábbi kód minden szót külön cellákba illeszt be.

Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore Karnataka fővárosa" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer For K = 1 - 7 Cell (1, k) .Value = SingleValue (k - 1) Következő k End Sub

Ez beilleszt minden szót, amint az az alábbi képen látható.

Dolgok, amikre emlékezni kell

  • A tömböt és a ciklusokat együtt használják a kód dinamikussá tételéhez.
  • Az SPLIT függvényhez közös elválasztó szükséges, amely elválasztja a mondat minden egyes szavát.
  • A tömb hossza nullától kezdődik, nem pedig 1-től.

érdekes cikkek...