W VBA tablice są używane do definiowania grupy obiektów razem, w VBA jest dziewięć różnych funkcji tablicowych i są to ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT i UBOUND, wszystkie te funkcje są wbudowane w tablice w VBA funkcja Array podaje nam wartość podanego argumentu.
Funkcja Excel VBA Array
Funkcja tablicowa to zbiór wartości w jednej zmiennej. Możemy dostarczyć tablicę do procedury podrzędnej w języku VBA, funkcjach i właściwościach. Tablice VBA to jedna z często używanych technik przechowywania więcej niż jednej wartości w zmiennej.
Przykłady funkcji macierzy Excel VBA
Zamiast deklarować wiele zmiennych i przechowywać wartości, możemy użyć tablicy Excel VBA do przechowywania wartości w samej zmiennej. Na przykład spójrz na poniższy przykład
Kod:
Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Range („A1”). Value = x Range („A2”). Value = y End Sub
W powyższym przykładzie zadeklarowałem dwie zmienne o nazwie x & y. X przechowuje 1 jako wartość, a Y przechowuje 2 jako wartość.
Spójrzmy teraz na przykład funkcji tablicowej Excel VBA z pojedynczą zmienną.
Kod:
Sub Array_Ex () Dim x (1 do 2) As Integer Range ("A1"). Value = x (1) Range ("A2"). Value = x (2) End Sub
Teraz, jeśli uruchomisz ten kod VBA, będziemy mieć wartości w komórkach A1 i A2.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba_.gif)
Zmienne tablicowe zwracały wynik jako zero. Dzieje się tak, ponieważ właśnie zadeklarowaliśmy zmienne jako dwie, ale nie przypisaliśmy im żadnych wartości. Musimy więc przypisać wartości do tych zmiennych.
Kod:
Sub Array_Ex () Dim x (1 do 2) As Integer x (1) = 10 x (2) = 20 Range („A1”). Value = x (1) Range („A2”). Value = x (2 ) Napis końcowy
Teraz uruchom kod, aby uzyskać wyniki.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__2.gif)
Zanim wprowadzimy wartości zmiennych tablicowych do komórek, musimy przypisać wartość do zadeklarowanych zmiennych tablicowych, tak jak przypisaliśmy zmiennym x (1) = 10 i x (2) = 20.
Przykład 1 - wstawianie numerów seryjnych za pomocą tablicy statycznej
Spójrzmy na przykład użycia tablicy statycznej do wstawiania numerów seryjnych. To jest bardzo podobne do poprzedniego.
Kod:
Sub StaticArray_Ex () Dim x (1 do 5) As Integer x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range („A1”). Wartość = x (1) Zakres ("A2"). Wartość = x (2) Zakres ("A3"). Wartość = x (3) Zakres ("A4"). Wartość = x (4) Zakres ("A5") Wartość = x (5) End Sub
Teraz uruchom ten kod, aby wstawić numery seryjne.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__3.gif)
Przykład 2 - wstawianie numerów seryjnych za pomocą tablicy dynamicznej
Teraz zobaczymy drugi typ tablicy, tj. Tablicę dynamiczną
Kod:
Sub DynamicArray_Ex () Dim x () As Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range („A1” ) .Wartość = x (1) Zakres ("A2"). Wartość = x (2) Zakres ("A3"). Wartość = x (3) Zakres ("A4"). Wartość = x (4) Zakres (" A5 ”). Wartość = x (5) End Sub
Teraz uruchom ten kod, aby uzyskać wynik numerów seryjnych. Otrzymujemy taki sam wynik jak poprzedni.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__4.gif)
Jeśli zauważysz, że nie podaliśmy długości tablicy podczas deklarowania zmiennej, zamiast tego przypisaliśmy ostatnią wartość tablicy VBA za pomocą funkcji VBA Redim. Redim przechowuje ostatnią wartość tablicy do przekazania.
Przykład # 3 - Utwórz funkcję Wstaw nazwy miesięcy za pomocą tablicy
Widzieliśmy, jak pracować z tablicami w VBA. Teraz zobaczymy, jak pracować z tablicą, aby utworzyć funkcję VBA w programie Excel. Funkcja to nic innego jak funkcja zdefiniowana przez użytkownika w języku VBA. Oprócz korzystania z wbudowanych funkcji, excel VBA pozwala nam również tworzyć własne funkcje.
Kod:
Funkcja List_Of_Months () List_Of_Months = Array („Sty”, „Lut”, „Mar”, „Kwi”, „Maj”, „Cze”, „Lip”, „Sie”, „Wrz”, „Paź”, „Lis "," Dec ") Koniec funkcji
Poniższy kod utworzy funkcję, która może wstawić miesiące do naszego arkusza Excela.
Skopiuj i wklej poniższy kod do swojego modułu.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__2.png.webp)
Teraz zapisz ten kod i zamknij Edytor VBA. Po zamknięciu edytora VBA przejdź do arkusza i wpisz formułę, którą właśnie utworzyliśmy, a w arkuszu powinna pojawić się formuła o nazwie List_Of_Months .
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__3.png.webp)
Otwórz formułę i naciśnij Enter. Otrzymamy nazwę z pierwszego miesiąca, tj. Jan.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__4.png.webp)
Jeśli wstawisz formułę jeszcze raz, nadal otrzymamy tylko styczeń, a nie następny miesiąc, luty. Więc najpierw wybierz 12 kolumn w jednym wierszu.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__5.png.webp)
Teraz otwórz formułę w komórce D1.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__6.png.webp)
Ponieważ utworzyliśmy formułę z tablicą, musimy zamknąć formuły tylko jako formułę tablicową. Więc przytrzymaj Ctrl + Shift + Enter. Mielibyśmy wszystkie 12-miesięczne nazwy.
![](https://cdn.know-base.net/1490727/vba_arrays_in_excel_how_to_work_with_arrays_function_in_vba__7.png.webp)
Rzeczy do zapamiętania
- Dostępne są jeszcze dwa typy tablic, tj. Tablica dwuwymiarowa i tablica wielowymiarowa.
- Tablice zaczynają się od 0, a nie od 1. Zero oznacza pierwszy wiersz i pierwszą kolumnę.
- Tablica to duży temat. Musisz to zrozumieć, aby przejść na następny poziom.
- Zmienna tablicowa będzie taka, która przechowuje dużo danych za każdym razem, gdy przechodzi do następnego poziomu.
- Redim służy do przechowywania ostatniej długości tablicy w dynamicznym typie tablicy.