VBA Podziel ciąg na tablicę

Excel VBA podzielił ciąg na tablicę

Ciąg jest zbiorem połączonych ze sobą znaków, gdy te znaki są podzielone i przechowywane w zmiennej, ta zmienna staje się tablicą dla tych znaków, a metoda, której używamy do podzielenia ciągu na tablicę, to użycie funkcji SPLIT vba, który dzieli ciąg na jednowymiarowy.

Podobnie jak arkusze robocze w VBA, również mamy funkcje do obsługi wartości typu String lub Text. Bardzo dobrze znamy operacje na łańcuchach, takie jak wyodrębnianie pierwszego imienia, nazwiska, drugiego imienia itp. Ale co z pomysłem dzielenia wartości ciągu na tablice w VBA? Tak, dobrze słyszałeś, możemy podzielić zdanie ciągowe na tablicę za pomocą kodowania VBA, aw tym specjalnym artykule pokażemy, jak podzielić ciąg na tablicę w Excel VBA.

Co to jest podzielenie ciągu na tablicę?

Pozwól, że najpierw wyjaśnię, „Ciąg w tablicy” to nic innego jak „różne części zdania lub ciągu zostaną podzielone na wiele części”. Na przykład, jeśli zdanie brzmi „Bangalore jest stolicą Karnataki”, to każde słowo jest inną tablicą.

Tak więc, jak podzielić to zdanie na tablicę, jest tematem tego artykułu.

Jak przekonwertować podzielony ciąg na tablicę w Excel VBA?

Aby przekonwertować podzielony ciąg na tablicę w VBA, mamy funkcję o nazwie „SPLIT”. Jest to funkcja VBA, która wykonuje zadanie dzielenia podanej wartości ciągu na różne części na podstawie podanego ogranicznika.

Na przykład, jeśli zdanie brzmi „Bangalore jest stolicą Karnataki”, separatorem między słowami jest spacja.

Poniżej znajduje się składnia funkcji SPLIT.

  • Wartość lub wyrażenie: jest to ciąg lub wartość tekstowa, którą próbujemy przekonwertować na tablicę, oddzielając każdą część ciągu.
  • [Separator]: To nic innego jak zwykłe rzeczy, które oddzielają każde słowo w ciągu. W naszym zdaniu „Bangalore jest stolicą Karnataki” każde słowo oddzielone jest spacją, więc naszym ogranicznikiem jest tutaj spacja.
  • [Limit]: Limit to nic innego jak liczba części, które chcemy w rezultacie uzyskać. Na przykład w zdaniu „Bangalore jest stolicą Karnataki” mamy siedem części, jeśli potrzebujemy tylko trzech części, pierwszą część otrzymamy jako „Bangalore”, drugą jako „jest”, a trzecią jako resztę zdanie tj. „stolica Karnataki”.
  • [Porównaj]: To nie jest używane w 99% przypadków, więc nie dotykajmy tego w tym momencie.
Możesz pobrać ten podzielony ciąg VBA do szablonu Array Excel tutaj - Podział ciągu VBA na szablon Array Excel

Przykład 1

Ok, zobaczmy teraz praktyczne przykłady.

Krok 1: Zdefiniuj zmienną VBA, która będzie przechowywać wartość ciągu.

Kod:

 Sub String_To_Array () Dim StringValue As String End Sub 

Krok 2: Dla tej zmiennej przypisz ciąg „Bangalore jest stolicą Karnataki”.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnatki" End Sub 

Krok 3: Następnie zdefiniuj jeszcze jedną zmienną, która może przechowywać każdą część powyższej wartości ciągu. W tym miejscu musimy pamiętać, że ponieważ zdanie ma więcej niż jedno słowo, musimy zdefiniować zmienną jako „Array”, aby przechowywać więcej niż jedną wartość.

W tym przypadku mamy 7 słów w ciągu, więc zdefiniuj tablicę w następujący sposób.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnatki" Dim SingleValue () As String End Sub 

Teraz dla tej zmiennej tablicowej użyjemy funkcji SPLIT, aby podzielić ciąg na tablicę w Excel VBA.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnataki" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

Wyrażenie jest naszą wartością łańcuchową, tj. Zmienna zawiera już wartość ciągu, więc wprowadź tylko nazwę zmiennej.

Separatorem w tym ciągu jest znak spacji, więc podaj to samo.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnataki" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

Na razie pozostaw inne części funkcji SPLIT.

Funkcja SPLIT podzieliła wartość ciągu na 7 części, każde słowo oddzielone kosztem spacji. Ponieważ zadeklarowaliśmy zmienną „SingleValue” jako tablicę, możemy przypisać wszystkie 7 wartości do tej zmiennej.

Kod możemy napisać w następujący sposób.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnataki" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Uruchom kod i zobacz, co otrzymamy w oknie komunikatu.

Od teraz widzimy pierwsze słowo, tj. „Bangalore”, aby pokazać kolejne słowa, które możemy napisać w następujący sposób.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnataki" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Teraz uruchom kod i zobacz, co otrzymamy w oknie komunikatu.

Każde słowo zostało podzielone na tablice.

Przykład nr 2

Teraz wyobraź sobie sytuację, w której te wartości są przechowywane w komórkach, tj. Każde słowo w osobnej komórce. W tym celu musimy uwzględnić pętlę FOR NEXT w VBA.

Poniższy kod wstawi każde słowo do oddzielnych komórek.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore jest stolicą Karnataki" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer Dla k = 1 do 7 komórek (1, k) .Value = SingleValue (k - 1) Next k End Sub 

Spowoduje to wstawienie każdego słowa, jak pokazano na poniższym obrazku.

Rzeczy do zapamiętania

  • Tablica i pętle są używane razem, aby uczynić kod dynamicznym.
  • Funkcja SPLIT wymaga wspólnego separatora, który oddziela poszczególne słowa w zdaniu.
  • Długość tablicy zaczyna się od zera, a nie od 1.