Tablica dynamiczna w programie Excel VBA - łatwe makra w programie Excel

Spisie treści

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

Dodaj kilka liczb do kolumny A.

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 nazwany i.

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

Uwaga: tablica nie ma jeszcze rozmiaru. liczby, rozmiar i ja są tutaj losowo wybierane, 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 rozmiar tablicy i zapisujemy go w zmiennej wielkości. W tym celu możesz użyć funkcji arkusza 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:

Numery ReDim (rozmiar)

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

Dla i = 1 do rozmiaru
liczby(i) = Komórki(i, 1)).Wartość
Dalej ja

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

Numery MsgBox (rozmiar)

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

Wynik:

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

8. Ponownie kliknij przycisk polecenia.

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

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

Numery ReDim(3)
Numery MsgBox(1)

Wynik:

Tablica jest pusta.

10. Jeśli chcesz zachować dane w istniejącej tablicy podczas zmiany jej rozmiaru, użyj słowa kluczowego Preserve.

ReDim Zachowaj numery(3)
Numery MsgBox(1)

Wynik:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave