Rozmiar tablicy VBA - przewodnik krok po kroku z przykładami

W tym artykule przedstawiamy przewodnik krok po kroku, jak znaleźć rozmiar tablicy za pomocą kodu VBA.

Jak znaleźć rozmiar tablicy za pomocą kodu VBA?

Postępuj zgodnie z instrukcjami, aby znaleźć rozmiar tablicy za pomocą kodu VBA programu Excel.

  • Krok 1: Zacznijmy od podstawowego, zadeklaruj zmienną w VBA jako wariant danych.

Kod:

Sub Array_Size () Dim MyArray As Variant End Sub
  • Krok 2: Dla tej zmiennej użyj funkcji ARRAY i przypisz kilka wartości, jak pokazano poniżej.

Kod:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip") End Sub
  • Krok 3: Ok, przypisaliśmy kilka wartości do nazwy tablicy „MyArray”.

Załóżmy, że jeśli musimy napisać pętlę, aby przechowywać te wartości tablic w komórkach, musimy zdecydować, ile razy pętla ma być uruchomiona. Zależy to od liczby wartości, które ma tablica.

Ok, teraz spójrz na liczbę wartości przypisanych do nazwy tablicy „MyArray”, jest w sumie 7 wartości przypisanych do tablicy, więc teraz wiemy, ile razy pętla musi zostać uruchomiona, aby przechowywać wartości tablicy w komórkach .

  • Krok 4: Zadeklaruj inną zmienną jako liczbę całkowitą, aby zapisać pętlę FOR w VBA.

Kod:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 1 to 7 Dalej k End Sub
  • Krok 5: No to zaczynamy pętlę FOR od 1 do 7, wewnątrz pętli wpisz właściwość CELLS do przechowywania, jak pokazano poniżej.

Kod:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 1 to 7 Cells (k, 1) .Value = MyArray (k) Next k End Sub
  • Krok 6: Ok, teraz wykonaj kod linia po linii, naciskając klawisz funkcyjny F8. Pierwsze naciśnięcie klawisza F8 spowoduje zainicjowanie makra.
  • Krok 7: Naciśnij F8, teraz przejdzie do linii przypisywania wartości tablicy.
  • Krok 8: Od teraz nazwa tablicy „MyArray” nie zawiera żadnych wartości, naciśnij F8, a wszystkie wymienione wartości zostaną przypisane do zmiennej tablicowej.
  • Krok 9: Teraz pętla zacznie działać i naciśnij klawisz F8 2 razy i zobacz, jaką wartość otrzymamy w komórce A1.
  • Ups !!! Zaczekaj, nasza pierwsza wartość w zmiennej tablicowej to „Jan”, ale otrzymaliśmy wynik jako drugą wartość „Feb”, gdy nadal działa pierwsza pętla wartości.
  • Krok 10: Dzieje się tak, ponieważ gdy liczba wartości w tablicy zaczyna się od zera, a nie od 1, musimy uwzględnić pętlę początkową jako zero.
  • Krok 11: Gdy pozycja początkowa pętli zostanie zmniejszona o jedną podobną końcówkę, należy również zmniejszyć o 1, więc ustaw końcówkę na 6 zamiast 7.
  • Step 12: Once the loop starting and ending decided one more tweak we need to do, i.e. in the CELLS property we have used “k” variable as the dynamic cell picker but since our loop starts from zero, there is no cell starts with zero, so add plus 1 to the variable “k”.

Code:

Sub Array_Size() Dim MyArray As Variant MyArray = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 0 To 6 Cells(k + 1, 1).Value = MyArray(k) Next k End Sub
  • Step 13: So now upon running the loop first-time “k” value is zero, and since we have added plus 1, the “k” value will be 1 so refers to cell A1.
  • Step 14: Now run the code, and all the values of array will be stored in cells.

However, in this instance, we have decided the loop starting and ending size manually, but the size of the array can be determined easily using LBOUND & UBOUND functions.

Find Size of an Array Automatically

  • Step 1: When we about included loop starting and ending point in the above we have manually counted the number of values array has but to start the array use LBOUND function and for this pass “MyArray” variable name.
  • Step 2: And to determine the last array size use UBOUND function and enter the array name “MyArray”.

Code:

Sub Array_Size() Dim MyArray As Variant MyArray = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = Lboubd(MyArray) To UBound(MyArray) Cells(k + 1, 1).Value = MyArray(k) Next k End Sub
  • Krok 3: Ok, teraz uruchom linię po kodzie linii i naciśnij klawisz F8, aż osiągnie punkt początkowy pętli.
  • Krok 4: Teraz najpierw umieść kursor na „LBound (MyArray)” i zobacz, co mówi.
  • Krok 5: Numer punktu początkowego, o którym mówi, to zero, teraz umieść kursor na „UBound (MyArray)” i zobacz, co mówi.

Mówi, że rozmiar tablicy wynosi 6, więc tak jak wspomnieliśmy o ręcznym rozpoczynaniu i kończeniu, UBOUND i LBOUND automatycznie wybierają dla nas liczby.

Interesujące artykuły...