Tablice Excel VBA

Excel VBA Array to tylko zmienna, która może przechowywać ten sam typ danych. Tablica to grupa zmiennej, która może przechowywać więcej niż jedną zmienną. Nazwa zmiennej będzie taka sama, ale może zawierać różne wartości w jednej zmiennej. Tablica VBA jest rodzajem zmiennej służącej do przechowywania list danych tego samego typu.

Jeśli mamy 5 komórek, które przechowują liczby, musimy zadeklarować 5 zmiennych, aby przechowywać 5 różnych liczb w zakresie. Ale za pomocą tablicy możemy przechowywać 5 różnych wartości w jednej zmiennej.

Jak korzystać z tablic Excel VBA?

Zobaczmy, jak korzystać z tablic Excel VBA i ich typów na kilku przykładach.

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

Przykład 1

Spójrz na poniższy przykład. X jest zmienną, która przechowuje typ danych liczb całkowitych.

Kod:

 Sub Array_Example1 () Dim x As Integer x = 1 End Sub 

Teraz przypisz wartość 1 do deklarowanej zmiennej x.

Wstawmy wartość 1 do komórki A1.

Kod:

 Pod Array_Example1 () Dim x As Integer x = 1 Range ("A1"). Value = x 
 Napis końcowy 

Wartość x jest równa 1, aw zakresie A1 wartość zostanie wstawiona jako wartość x, tzn. Wartość x wynosi 1. Teraz uruchom kod za pomocą klawisza F5 lub ręcznie, aby zobaczyć wyniki.

W powyższym przykładzie x zawiera tylko jedną zmienną, która jest wszystkim. Ale jeśli chcę wstawić 5 kolejnych liczb za pomocą jednej zmiennej, muszę użyć zmiennej tablicowej typu, która może przechowywać wiele wartości zmiennych w nazwie jednej zmiennej.

Przykład nr 2

Teraz spójrz na poniższy przykład. Nazwa zmiennej to x, a typ danych to LONG. Ale deklarując samą zmienną, otworzyłem nawias i wspomniałem od 1 do 5. Oznacza to, że zmienna x będzie zawierać 5 różnych typów wartości.

Kod:

 Pod Array_Example () Dim x (1 do 5) As Long, i Jako Integer End Sub 

Następnie przypisałem wartości do każdej zmiennej. X (1) = 20 oznacza, że ​​pierwsza zmienna powinna być równa wartości 20. X (2) = 25 oznacza, że ​​druga zmienna powinna być równa wartości 25 i tak dalej.

Kod:

 Przykład Array_Example () Dim x (1 do 5) As Long, i As Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Sub Sub 

Później zadeklarowałem jeszcze jedną zmienną o nazwie „I”, która jest drugim typem zmiennej i zawiera typ danych liczb całkowitych .

W następnym kroku zastosowałem pętle FOR, aby wstawić przypisane liczby do tablicy w pierwszej kolumnie. Ustawiłem wartość zmiennej i na 1 i poinstruowałem pętlę, aby działała od 1 do 5 razy. Gdy pętla działa po raz pierwszy, wartość i będzie równa 1. CELLS (I, 1). Wartość = x (i) oznacza to, że po raz pierwszy i jest równa 1, tj. CELLS (1, 1). Wartość = x (1), w pierwszym rzędzie pierwsza kolumna (komórka A1) wartością będzie pierwsza wartość tablicy ( x (1) ), tj. 20.

Gdy pętla uruchomi się po raz drugi, wartość i wynosi 2, tj. KOMÓRKI (2, 1). Wartość = x (2), w drugim wierszu pierwszej kolumny (A2) wartością będzie druga tablica ( x (2) ) tj. 25.

Kod:

 Pod Array_Example () Dim x (1 do 5) As Long, i As Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 For i = Od 1 do 5 komórek (i, 1). Wartość = x (i) Dalej i End Sub 

W ten sposób, gdy pętle będą działać, wartości będą się zmieniać. Gdy pętle uruchomione po raz trzeci wartość komórki A3 wyniesie 44, wartość czwartej pętli uruchomionej wartość komórki A4 wyniesie 78, gdy pętle uruchomione po raz ostatni lub piąty raz wartość komórki A5 wyniesie 96.

Po uruchomieniu kodu za pomocą klawisza F5 lub ręcznie uzyskamy wyniki, jak pokazano poniżej.

Rodzaje tablic w Excelu

Tablice mają różne typy w VBA. Istnieje pięć rodzajów tablic dostępnych w programie Excel.

  • Tablica statyczna
  • Tablica dynamiczna
  • Tablica jednowymiarowa
  • Dwuwymiarowa tablica
  • Tablica wielowymiarowa

Tablica statyczna

W tego typu tablicy długość tablicy jest z góry ustalona i pozostaje stała.

Kod:

 Sub Static_Example () Dim ArrayType (1 To 3) As Integer ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 komórki (1, 1) .Value = ArrayType (1) Komórki (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

W powyższym kodzie długość ArrayType jest ustalana z dużym wyprzedzeniem jako 1 do 3, a typ danych to Integer.

Po uruchomieniu kodu za pomocą klawisza F5 lub ręcznie uzyskamy wyniki, jak pokazano poniżej.

Tablica dynamiczna

W tego typu tablicach długość tablicy nie jest z góry ustalona z dużym wyprzedzeniem.

Kod:

 Sub Dynamic_Example () Dim ArrayType () Jako wariant ReDim ArrayType (3) ArrayType (1) = „My Name” ArrayType (2) = „is” ArrayType (3) = „Excel” Cells (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

W tym typie danych tablicowych jest Wariant i tutaj nie określa się długości. Po zadeklarowaniu zmiennej przypisałem długość tablicy za pomocą funkcji ReDim . Ta tablica wstawi wartości takie jak ta Komórka A1 = Moja nazwa, Komórka B1 = to, Komórka C1 = Excel.

Tablica jednowymiarowa

W tym typie tablicy określa się długość, ale działa w jednym wymiarze.

Kod:

 Sub One_Dimensional () Dim OneDimension (1 do 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Pokaż te wartości w oknie komunikatu VBA.

Kod:

 Sub One_Dimensional () Dim OneDimension (1 do 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Uruchom ten kod za pomocą klawisza F5 lub ręcznie, a otrzymamy następujący wynik.

Dwuwymiarowa tablica

W tego typu tablicach długość jest określana w dwóch wymiarach i działa.

Kod:

 Sub Two_Dimensional () Dim TwoDimension (1 To 2, 1 To 2) As Long Dim i As Integer Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Sub Sub 

Teraz, aby zapisać te wartości w komórkach poniżej kodu.

Kod:

 Sub Two_Dimensional () Dim TwoDimension (1 To 2, 1 To 2) As Long Dim i As Integer Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 For i = 1 To 2 For j = 1 To 2 Cells (i, j) = TwoDimension (i, j) Next j Next i End Sub 

Spowoduje to przechowywanie danych jak poniżej.

Tablica wielowymiarowa

W tego typu tablicach długość jest określana, ale działa w wielu wymiarach.

Kod:

 Sub Multi_Dimensional () Dim TwoDimension (1 To 3, 1 To 2) As Long Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Jeśli spojrzysz na powyższy kod, najpierw zadeklarowałem tablicę jako 1 do 3, a następnie od 1 do 2. Oznacza to, że kiedy piszę tablicę, najpierw mogę użyć tylko 1 do 3 cyfr, ale w drugim miejscu mogę użyć tylko 1 do 2, a nie 1 do 3.

Za pomocą pętli możemy wstawiać wartości do komórek. Użyłem dwóch pętli do wielowymiarowej tablicy.

Kod:

 Sub Multi_Dimensional () Dim TwoDimension (1 To 3, 1 To 2) As Long Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 Dla i = 1 do 3 Dla j = 1 do 2 komórek (i, j) = MultiDimension (i, j) Następny j Next i End Sub 

Po uruchomieniu kodu za pomocą klawisza F5 lub ręcznie uzyskamy wyniki, jak pokazano poniżej.

Rzeczy do zapamiętania

  • Tablica policzy wartości od zera, a nie od 1.
  • Tablica (0, 0) oznacza pierwszą kolumnę w pierwszym rzędzie.
  • Ten plik makr programu Excel należy zapisać jako skoroszyt z obsługą makr.
  • W przypadku tablicy dynamicznej musimy przypisać wartość tablicy za pomocą funkcji REDIM w VBA.

Polecane artykuły

Jest to przewodnik po tablicach VBA. Tutaj omówiliśmy Rodzaje tablic w VBA i jak korzystać z tablic Excel VBA wraz z kilkoma praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Znajdź funkcję w programie Excel z przykładami
  2. Co to jest funkcja VBA w programie Excel?
  3. Przewodnik po obiekcie VBA Range
  4. Jak korzystać z funkcji VBA VLOOKUP?

Kategoria: