Funkcja VBA UBound - Jak korzystać z UBound w Excel VBA?

Spisie treści

UBOUND lub znana również jako Upper Bound, ta funkcja w VBA jest używana z jej przeciwną funkcją niż LBOUND lub znana również jako funkcja Lower Bound, użycie tej funkcji ma na celu zdefiniowanie długości tablicy w kodzie i jak sama nazwa wskazuje UBOUND służy do zdefiniowania górnej granicy tablicy.

Funkcja VBA UBOUND

Jak określić maksymalną długość tablicy w programie Excel? Tak, możemy ręcznie zobaczyć i zaktualizować maksymalną długość tablicy, ale jeśli robisz to przez cały czas, to dzisiaj jest koniec, ponieważ mamy funkcję o nazwie UBOUND do określenia maksymalnej długości tablicy. Postępuj zgodnie z tym artykułem, aby uzyskać więcej informacji na temat funkcji UBOUND w programie Excel VBA.

UBOUND oznacza Upper Bound. Często przy kodowaniu możemy wymagać znalezienia maksymalnej długości tablicy. Na przykład MyResult (24) oznacza nazwę tablicy MyResult przechowuje 25 wartości, ponieważ tablica zaczyna się od zera, a nie od jednego. Zatem 24 oznacza +1, czyli łącznie 25 wartości.

W tym przypadku maksymalna długość tablicy wynosi 24. Zamiast ręcznie podawać długość tablicy, możemy użyć funkcji wbudowanej UBOUND, aby uzyskać maksymalną długość tablicy.

Kod to: UBOUND (MyResult), czyli UBOUND (24)

Zatem funkcja Excel VBA UBOUND reprezentuje górną granicę rozmiaru tablicy.

Jak korzystać z funkcji VBA UBound w programie Excel?

Formuła VBA UBOUND jest bardzo prosta, ponieważ ma tylko dwa parametry.

UBound (Arrayname (, Dimension))
  • Nazwa tablicy: jest to nazwa zdefiniowanej przez nas tablicy. Na przykład w powyższym przykładzie MyResult jest nazwą tablicy.
  • (Wymiar): Jeśli tablica ma więcej niż jeden wymiar, musimy określić wymiar tablicy. Jeśli go zignorujesz, domyślnie potraktuje pierwszy wymiar.

Funkcja Excel VBA UBOUND jest bardzo przydatna do określania długości pętli podczas ich uruchamiania.

Przykłady funkcji UBOUND w Excel VBA

Poniżej znajdują się praktyczne przykłady funkcji VBA UBound.

Przykład 1

Aby rozpocząć procedurę, napiszę prosty kod. Wykonaj poniższe kroki, aby zastosować funkcję VBA UBOUND.

Krok 1: Uruchom makro programu Excel i zdefiniuj nazwę zmiennej.

Kod:

Sub Ubound_Example1 () Dim ArrayLength (0 do 4) As String

Krok 2: Przypiszę wartości do tej nazwy tablicy.

Kod:

Sub Ubound_Example1 () Dim ArrayLength (0 do 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Witamy" ArrayLength (3) = "to" ArrayLength (4) = „Klasa VBA” End Sub

Krok 3: Teraz, korzystając z okna komunikatu z funkcją UBOUND, zobaczymy maksymalną długość tablicy.

Kod:

Sub Ubound_Example1 () Dim ArrayLength (0 do 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Witamy" ArrayLength (3) = "to" ArrayLength (4) = „Klasa VBA” MsgBox ”Górna długość ograniczenia to:„ & UBound (ArrayLength) End Sub

Krok 4: Uruchom ten kod, naciskając klawisz F5 lub możesz również uruchomić kod ręcznie, jak pokazano na poniższym zrzucie ekranu.

Okno komunikatu pokaże górną granicę liczby tablicy, która zostanie wyświetlona w oknie komunikatu.

W ten sposób za pomocą funkcji Excel VBA UBOUND możemy uzyskać górną granicę długości tablicy.

Przykład # 2 - Używanie funkcji Excel VBA UBOUND do kopiowania danych

Załóżmy, że masz listę danych w jednym arkuszu Excela, takim jak poniższy.

Te dane będą aktualizowane codziennie i musisz je kopiować do nowego arkusza za każdym razem, gdy jest on aktualizowany. Ręczna aktualizacja zajmie dużo czasu w Twoim miejscu pracy, ale pokażę Ci prosty kod makra, aby to zautomatyzować.

Krok 1: Utwórz makro i zdefiniuj zmienną tablicową.

Kod:

Sub Ubound_Example2 () Dim DataRange () As Variant End Sub

Krok 2: Teraz aktywuj arkusz danych, sprawdzając jego nazwę.

Kod:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets („Data Sheet”). Aktywuj End Sub

Krok 3: Teraz przypisz zakres danych do zdefiniowanej zmiennej za pomocą poniższego kodu.

Kod:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activate DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub

Step 4: Now add a new worksheet to the workbook.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add End Sub

Step 5: Now add the data to the newly added sheet by using the Excel VBA UBOUND function in the form of the below code.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add Range(ActiveCell, ActiveCell.Offset(UBound(DataRange, 1) - 1, UBound(DataRange, 2) - 1)) = DataRange End Sub

The above code will offset the cells by the maximum length returned by the UBOUND function, and this range will be equal to the value of the array name “DataRange.

Step 6: Now run this code. It will paste the value to the new sheet.

This code is a dynamic one because even when the data increases horizontally and vertically, it will automatically take the range. Now I will add some dummy lines to the data.

Now I will once again run this code. It will now add the newly added lines as well.

Code:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activate DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Rzeczy do zapamiętania

  • UBOUND zwraca maksymalną długość tablicy.
  • Tablica zaczyna się od 0, a nie od 1.
  • Jeśli chcesz mieć niższą wartość tablicy, musisz użyć VBA LBOUND.
  • Jeśli tablica ma więcej niż jeden wymiar, musisz również określić numer wymiaru.

Interesujące artykuły...