Tablica ciągów Excel VBA
W języku VBA tablica ciągów to nic innego jak zmienna tablicowa, 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 dużo czasu w naszym harmonogramie, eliminując zadanie deklarowania indywidualnych zmiennych dla każdego miasta. Jednak jeszcze jedną rzeczą, której musisz się nauczyć, jest 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.
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 nawiasach, nie napisał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, oddzielonych przecinkami (,).
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 się na dolną i górną granicę 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. Otrzymujemy ten sam wynik, jaki otrzymujemy z poprzedniego kodu.

Przykład nr 2
Tablica ciągów VBA z funkcjami LBOUND i UBOUND
W przypadku, gdy nie chcesz wyświetlać wszystkich list miast w pojedynczym oknie wiadomości, musisz dołączyć pętle, zdefiniować jeszcze jedną zmienną dla pętli.

Teraz, aby uwzględnić 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 wpisywać liczby ręcznie, 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, aby zmienna pętli „k” automatycznie pobierała 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
In this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.
Code:
Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”
Code:
Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", ";") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next 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.