VBA UBOUND

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 polega na zdefiniowaniu 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 wszystko, podczas gdy 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 Excel VBA.

UBOUND oznacza Upper Bound. Często w kodowaniu możemy wymagać znalezienia maksymalnej długości tablicy. Na przykład MyResult (24) oznacza, że ​​nazwa tablicy MyResult zawiera 25 wartości, ponieważ tablica zaczyna się od zera, a nie od jedynki. Zatem 24 oznacza +1, czyli w sumie 25 wartości.

Tutaj maksymalna długość tablicy wynosi 24, zamiast ręcznie podawać długość tablicy, możemy użyć wbudowanej funkcji 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 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.

Możesz pobrać ten szablon funkcji VBA UBound tutaj - Szablon 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) = "Welcome" 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 pokazana 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 („Arkusz danych”). 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 

Krok 4: Teraz dodaj nowy arkusz do skoroszytu.

Kod:

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

Krok 5: Teraz dodaj dane do nowo dodanego arkusza za pomocą funkcji Excel VBA UBOUND w postaci poniższego kodu.

Kod:

 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 

Powyższy kod przesunie komórki o maksymalną długość zwróconą przez funkcję UBOUND i ten zakres będzie równy wartości nazwy tablicy „ DataRange

Krok 6: Teraz uruchom ten kod, który wklei wartość do nowego arkusza.

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 

Things to Remember

  • UBOUND returns the maximum length of the array.
  • The array starts from 0, not from 1.
  • If you want the lower value of the array then you need to use VBA LBOUND.
  • If the array has more than one dimension then you need to specify the dimension number as well.