Excel VBA ReDim

Możemy dostosować liczbę elementów w tablicy za pomocą VBA Redim. Redim nie jest funkcją, jest to program dynamicznej alokacji pamięci za pomocą instrukcji Redim. Kiedy używamy Redim, pewna ilość pamięci jest przechowywana na bok do przechowywania danych.

Jak korzystać z VBA ReDim?

Omówimy sposób korzystania z instrukcji VBA ReDim na kilku przykładach.

Możesz pobrać ten szablon VBA ReDim Excel tutaj - szablon VBA ReDim Excel

VBA ReDim - Przykład nr 1

Kiedy używamy Dim dla tablicy, nie możemy zmienić wartości magazynu danych w tablicy. Ale kiedy używamy Redim, możemy zmienić przechowywaną wartość w tablicy. Ten proces zmiany tablicy nazywa się ponownym wymiarowaniem tablicy.

Załóżmy, że mamy tablicę A o wartości 4 komórek, która zostanie zdefiniowana za pomocą;

  • Dim A (3) As Double

Jak widzimy, wszystkie komórki mają „0” jako przechowywaną wartość. Załóżmy teraz, że jeśli zredukujemy wymiar Dim A za pomocą danych z 3 komórek i zapiszemy w nim wartość, będzie to wyglądać jak poniżej.

  • ReDim B (2) As Double

B (0) = 1; B (1) = 3, B (2) = -6

Będzie to wyglądać jak;

Teraz, jeśli chcemy dodać do niego komórki, możemy to zrobić. Następnie automatycznie przypisze „0” do tych komórek. Teraz, aby wdrożyć ReDim, naciśnij Alt + F11, aby otworzyć okno VBA. I z menu Wstaw wybierz opcję Moduł, aby otworzyć nowe okno, jak pokazano poniżej.

Teraz otwórz podkategorię i dodaj dowolną nazwę. Ponieważ korzystamy z ReDim, nazwaliśmy się jako UsingReDim .

Kod:

 Sub UsingReDim () End Sub 

Teraz przed zdefiniowaniem ReDim, najpierw zdefiniuj dowolną liczbę całkowitą. Tutaj zdefiniowaliśmy go jako „A” o długości tablicy 3. I przechowujemy niektóre wartości w utworzonej tablicy 3 komórek, jak pokazano poniżej.

Kod:

 Sub UsingReDim () Dim A (2) As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Teraz drukując wartości zapisane w liczbach całkowitych A, musimy utworzyć okno komunikatu za pomocą polecenia MsgBox, jak pokazano poniżej.

Kod:

 Sub usingReDim () Dim A (2) As Integer A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Teraz uruchom kod, klikając przycisk odtwarzania lub klawisz F5, jak pokazano poniżej.

Teraz użyjemy ReDim i będzie przechowywać więcej niż zdefiniowane znaki w tablicy. W tym celu użyj ReDim dla zdefiniowanej liczby całkowitej A. Po pierwsze usuniemy zdefiniowaną liczbę komórek z Dim. Korzystanie z funkcji Redim jest następujące:

  • ReDim A (2) stosuje się do macierzy komórek A (0), A (1), A (2) .
  • ReDim A (4) stosuje się do komórek A (0), A (1), A (2), A (3), A (4) z dwoma dodatkowymi komórkami zastępczymi.

Kod:

 Sub UsingReDim () Dim A () As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Po zakończeniu uruchom pełny kod, klikając przycisk odtwarzania lub używając klawisza F5. Po uruchomieniu pełnego kodu otrzymamy 3 pola wiadomości, ale z wiadomością zawierającą tylko „0”, jak pokazano poniżej.

Jest tak, ponieważ ReDim faktycznie ma tylko 3 wartości, ale nie przenosił przechowywanych wartości w ramach zdefiniowanych liczb całkowitych. Używanie Redim tylko nie przechowuje żadnych wartości i przenosi do nich wcześniej zapisane wartości. Aby zastosować to samo, musimy zachować wartości zdefiniowanej liczby całkowitej A za pomocą ReDim. Korzystając z opcji Zachowaj w VBA, możemy przechowywać wartość w ReDim. W tym celu dodamy Zachowaj po ReDim w kodach VBA pokazanych poniżej.

Kod:

 Sub UsingReDim () Dim A () As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Koniec Sub 

Teraz uruchom ponownie cały kod. Zobaczysz 3 pola komunikatów ze wszystkimi zapisanymi wartościami, jak pokazano poniżej.

Teraz musisz się zastanawiać, dlaczego użyliśmy A (4) z ReDim Preserve?

Poniżej znajduje się wyjaśnienie. Gdzie 1., 2. i 3. pozycja tablicy zajęte są odpowiednio wartościami 1, 2 i 3. A 4 i 5 pozycja, która reprezentuje 3 i 4 liczbę tablic A, są komórkami obojętnymi. Co oznacza, że ​​jeśli nie są przechowywane dane 4. i 5. pozycja, to automatycznie uwzględni wartość „0” i wiadomość nie zostanie wypełniona.

Jeśli spróbujemy zobaczyć wartości przechowywane w czwartej i piątej pozycji tablicy ReDim, musimy również wstawić okno komunikatu dla tych dwóch pozycji.

Kod:

 Sub UsingReDim () Dim A () As Integer ReDim A (3) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Ponieważ dodaliśmy komunikat zapakowany na 4. i 5. pozycję bez zapisywania żadnej wartości. Teraz uruchom kod ponownie.

Jak widać na powyższych zrzutach ekranu, dla czwartej i piątej pozycji mamy pola wiadomości, ale wartość jest wyświetlana jako „0”. Co oznacza, że ​​wyjaśnia powyższe stwierdzenie. Jeśli nie zdefiniowano żadnej wartości, ReDim Preserve automatycznie rozważy i wypełni „0” w pozostałych komórkach.

VBA ReDim - Przykład 2

Zobaczmy teraz, jak używać instrukcji ReDim z ciągiem zamiast liczby całkowitej.

Kod:

 Sub UsingReDim () Dim A () As String ReDim A (3) A (0) = „Customer” A (1) = „Product” A (2) = „Product ID” ReDim Preserve A (4) MsgBox A (0 ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Po zakończeniu uruchom cały kod za pomocą klawisza F5 lub ręcznie, jak pokazano poniżej.

Jak widać na powyższym zrzucie ekranu, otrzymujemy wszystkie zdefiniowane i zapisane znaki w pierwszych 3 oknach wiadomości. A w czwartym i piątym pudełku nic nie dostajemy. Ponieważ ReDim nie przechowuje żadnej wartości, jeśli nie jest zdefiniowana. W przypadku liczb całkowitych będzie to oznaczać „0”, ale w przypadku ciągu będzie wyświetlać tylko puste wiadomości.

Zalety Excel VBA ReDim

  • VBA ReDim pozwala nam na nowo zdefiniować wartości wymiarów.
  • Możemy zdefiniować dowolną liczbę tablic wymiarowych bez wartości zerowej lub zerowej i zapisać wartości później.
  • ReDim oznacza Ponowne wymiarowanie daje możliwość dodawania dowolnej liczby tablic danych bez zwiększania rozmiaru przechowywanych danych.

Rzeczy do zapamiętania

  • Zawsze pamiętaj o dodaniu Zachowaj po ReDim w VBA, aby przechowywał poprzednio używane wymiary.
  • Jeśli wymiar jest zdefiniowany jako Ciąg, wówczas dowolna pozycja pozostawiona pusta w przypisywaniu wartości, pozostanie pusta, a kiedy wydrukujemy to samo za pomocą okna komunikatu, również da puste pole komunikatu.
  • Jeśli zdefiniowaliśmy wymiary Dim z 3 znakami lub wartościami komórek, to w ReDim możemy użyć dowolnej liczby wymiarów zawierających wartości zdefiniowane i zapisane w Dim.

Polecane artykuły

To był przewodnik po Excel VBA ReDim. Tutaj omówiliśmy, jak używać instrukcji VBA ReDim do usuwania spacji, a także kilka praktycznych przykładów i szablonu programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Jak korzystać z instrukcji VBA On Error?
  2. Format liczb w VBA
  3. Jak korzystać z funkcji wyszukiwania VBA?
  4. Funkcja VBA TRIM

Kategoria: