/ / Dynamic Array w programie Excel VBA

Dynamic Array w Excel VBA

Jeśli rozmiar twojej tablicy rośnie i nie chcesz poprawiać rozmiaru tablicy, możesz użyć Słowo kluczowe ReDim. Excel VBA następnie automatycznie zmienia rozmiar tablicy.

Dodaj kilka liczb do kolumny A.

Dynamic Array w Excel VBA

Umieść przycisk polecenia w arkuszu i dodaj następujące wiersze kodu:

1. Najpierw deklarujemy tablicę o nazwach liczb. Zadeklaruj również dwie zmienne typu Integer. Jeden nazwany rozmiar i jeden o nazwie i.

Dim numbers() As Integer, size As Integer, i As Integer

Uwaga: tablica nie ma jeszcze rozmiaru. Liczby, wielkości i i są losowo wybrane tutaj, możesz użyć dowolnych nazw. Pamiętaj, aby odwoływać się do tych nazw w pozostałej części kodu.

2. Następnie określamy wielkość tablicy i przechowujemy ją w zmiennej wielkości. Możesz użyć do tego funkcji arkusza roboczego CountA. Dodaj następującą linię kodu:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. Znamy teraz rozmiar tablicy i możemy ją zmienić. Dodaj następującą linię kodu:

ReDim numbers(size)

4. Następnie inicjalizujemy każdy element tablicy. Używamy pętli.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. Wyświetlamy ostatni element tablicy za pomocą MsgBox.

MsgBox numbers(size)

6. Wyjdź z Edytora Visual Basic i kliknij przycisk polecenia na arkuszu.

Wynik:

Ostatni element tablicy

7. Teraz, aby wyraźnie zobaczyć, dlaczego nazywa się to tablicą dynamiczną, dodaj numer do kolumny A.

Dodaj numer

8. Kliknij ponownie przycisk polecenia.

Dynamiczny wynik macierzy

Wniosek: Excel VBA automatycznie zmienił rozmiar tej dynamicznej tablicy.

9. Kiedy używasz słowa kluczowego ReDim, usuwasz wszystkie dane aktualnie przechowywane w tablicy. Na przykład dodaj następujące linie kodu do wcześniej utworzonego kodu:

ReDim numbers(3)
MsgBox numbers(1)

Wynik:

Bez zachowania

Tablica jest pusta.

10. Jeśli chcesz zachować dane w istniejącej tablicy, gdy ją zmienisz, użyj słowa kluczowego Zachowaj.

ReDim Preserve numbers(3)
MsgBox numbers(1)

Wynik:

Z Zachowaniem

Przeczytaj również: