Tablica ciągów VBA

Tablica ciągów Excel VBA

W języku VBA tablica ciągów jest niczym innym jak zmienną tablicową, która może zawierać więcej niż jedną wartość ciągu z jedną zmienną.

Na przykład spójrz na poniższy kod VBA.

Kod:

 Sub String_Array_Example () Dim CityList (1 do 5) As Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kalkuta" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub 

W powyższym kodzie zadeklarowałem jako zmienną tablicową i przypisałem długość tablicy od 1 do 5.

 Dim CityList (1 do 5) jako wariant 

Do tej zmiennej tablicowej przypisałem 5 nazw miast, w których w nawiasach podana jest liczba każdej tablicy.

CityList (1) = „Bangalore” CityList (2) = „Mumbai” CityList (3) = „Kalkuta” CityList (4) = „Hyderabad” CityList (5) = „Orissa”

Następnie napisałem kod pokazujący te nazwy miast w oknie komunikatu.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Kiedy uruchomię ten kod, otrzymamy okno komunikatu, które pokazuje wszystkie nazwy miast w jednym oknie komunikatu.

Wszyscy wiemy, że zaoszczędziło to wiele czasu w naszym harmonogramie, eliminując zadanie deklarowania indywidualnych zmiennych dla każdego miasta. Jednak jeszcze jedna rzecz, której musisz się nauczyć, to to, że nadal możemy zredukować kod linii, którą piszemy dla wartości łańcuchowych. Spójrzmy, jak piszemy kod dla tablic ciągów VBA.

Przykłady tablicy ciągów w Excel VBA

Poniżej znajdują się przykłady tablicy ciągów VBA programu Excel.

Możesz pobrać ten szablon VBA String Array Excel tutaj - VBA String Array Szablon Excel

Przykład 1

Jak widzieliśmy w powyższym kodzie, dowiedzieliśmy się, że możemy przechowywać więcej niż jedną wartość w zmiennej w oparciu o określony rozmiar tablicy.

Teraz musimy nie decydować z dużym wyprzedzeniem o długości tablicy.

Kod:

 Sub String_Array_Example1 () Dim CityList () As Variant End Sub 

Jak widać powyżej w nawiasie, nie zapisałem żadnych długości. Teraz dla tej zmiennej wstawmy wartości za pomocą funkcji VBA ARRAY.

Wewnątrz tablicy przekaż wartości w podwójnych cudzysłowach, każdy oddzielony przecinkiem (,).

Kod:

 Sub String_Array_Example () Dim CityList () As Variant CityList = Array („Bangalore”, „Mumbai”, „Kalkuta”, „Hyderabad”, „Orissa”) End Sub 

Teraz zachowaj stary kod, aby wyświetlić wyniki nazw miast w oknie komunikatu w VBA.

Kod:

 Sub String_Array_Example1 () Dim CityList () As Variant CityList = Array („Bangalore”, „Mumbai”, „Kalkuta”, „Hyderabad”, „Orissa”) MsgBox CityList (0) & „,„ & CityList (1) & ” , „& CityList (2) &”, „& CityList (3) &”, „& CityList (4) End Sub 

Jedną ze zmian, które wprowadziłem w powyższym kodzie, jest to, że nie zdecydowaliśmy o dolnej i górnej granicy zmiennej tablicowej i użyliśmy funkcji ARRAY liczba tablic rozpocznie się od 0, a nie od 1.

Dlatego właśnie wymieniliśmy wartości jako CityList (0), ClityList (1), CityList (2), CityList (3) i CityList (4).

Teraz uruchom kod za pomocą klawisza skrótu F5 programu Excel lub ręcznie, otrzymamy ten sam wynik, co z poprzedniego kodu.

Przykład nr 2

Tablica ciągów VBA z funkcjami LBOUND i UBOUND

W przypadku, gdy nie chcesz wyświetlać całej listy miast w pojedynczym oknie wiadomości, musisz dołączyć pętle, zdefiniuj jeszcze jedną zmienną dla pętli.

Teraz, aby dołączyć pętlę FOR NEXT, nie jesteśmy pewni, ile razy musimy uruchomić kod, w tym przypadku możemy zdecydować o tym jak 5 razy, ale to nie jest właściwy sposób podejścia do problemu. A co powiesz na pomysł z automatycznym identyfikatorem długości tablicy na niższym i wyższym poziomie?

Kiedy otwieramy pętlę FOR NEXT, zwykle określamy długość pętli jako 1 do 5 lub 1 do 10 w zależności od sytuacji. Zamiast ręcznie wprowadzać liczby, użyjmy funkcji LBOUND i UBOUND, aby automatycznie zdecydować o dolnej i górnej wartości.

Dla LBound i Ubound podałem nazwę tablicy czyli CityList. VBA LBound identyfikuje dolną wartość zmiennej tablicowej, a funkcja VBA UBound identyfikuje górną wartość zmiennej tablicowej.

Teraz pokaż wartość w oknie komunikatu, zamiast wstawiać numer seryjny, pozwól zmiennej pętli „k” automatycznie pobierać wartość tablicy.

Kod:

 Sub String_Array_Example1 () Dim CityList () As Variant Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kalkuta", "Hyderabad", "Orissa") For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Sub 

Teraz okno komunikatu pokaże nazwę każdego miasta osobno.

Przykład nr 3

Tablica ciągów VBA z funkcją Split

Teraz załóżmy, że masz nazwy miast, takie jak poniżej.

Bangalore; Bombaj; Kalkuta; Hydrabad; Orissa

W tym przypadku wszystkie miasta są łączone razem z dwukropkiem oddzielającym każde miasto. W takich przypadkach musimy użyć funkcji SPLIT, aby oddzielić każde miasto.

W przypadku wyrażenia podaj listę miast.

Kod:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kalkuta; Hydrabad; Orissa", For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Pod 

Kolejnym argumentem jest „Delimiter”, czyli co jest jednym znakiem oddzielającym każde miasto od innych, w tym przypadku „dwukropek”.

Kod:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kalkuta; Hydrabad; Orissa", ";") For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k ) Dalej k End Sub 

Teraz wartości podziału funkcji SPLIT określają również największą długość tablicy.

Rzeczy do zapamiętania

  • LBOUND i UBOUND to funkcje określające długości tablic.
  • Funkcja ARRAY może przechowywać wiele wartości dla zadeklarowanej zmiennej.
  • Raz, jeśli chcesz użyć funkcji ARRAY, nie decyduj o długości tablicy.