UBOUND nebo také známý jako Upper Bound, tato funkce ve VBA se používá s jeho opačnou funkcí, kterou LBOUND nebo také známá jako Lower Bound funkce, použití této funkce je definovat délku pole v kódu a jak název napovídá UBOUND se používá k definování horní hranice pole.
Funkce VBA UBOUND
Jak zjistíte maximální délku pole v aplikaci Excel? Ano, můžeme ručně vidět a aktualizovat maximální délku pole, ale pokud to všechno děláte, pak je dnes konec, protože máme funkci nazvanou UBOUND k určení maximální délky pole. V tomto článku najdete další informace o funkci UBOUND v aplikaci Excel VBA.
UBOUND znamená Upper Bound. Často v kódování můžeme vyžadovat nalezení maximální délky pole. Například MyResult (24) znamená název pole MyResult obsahuje 25 hodnot, protože pole začíná od nuly, ne od jedné. Takže 24 znamená +1, tj. Celkem 25 hodnot.
Zde je maximální délka pole 24. Místo ručního zadávání délky pole můžeme použít vestavěnou funkci UBOUND k získání maximální délky pole.
Kód je: UBOUND (MyResult), tj. UBOUND (24)
Funkce Excel VBA UBOUND tedy představuje horní hranici velikosti pole.

Jak používat funkci VBA UBound v aplikaci Excel?
Vzorec VBA UBOUND je velmi jednoduchý, protože má pouze dva parametry.
UBound (Arrayname (, Dimension))
- Název pole: Toto je název názvu pole, který jsme definovali. Například ve výše uvedeném příkladu je MyResult název pole.
- (Dimension): Pokud má pole více než jednu dimenzi, musíme zadat dimenzi pole. Pokud to ignorujete, bude ve výchozím nastavení zacházet s první dimenzí.
Funkce Excel VBA UBOUND je velmi užitečná při určování délky smyček při běhu smyček.
Příklady funkce UBOUND v aplikaci Excel VBA
Níže jsou uvedeny praktické příklady funkce VBA UBound.
Příklad č. 1
Chcete-li zahájit řízení, dovolte mi napsat jednoduchý kód. Chcete-li použít funkci VBA UBOUND, postupujte podle následujících kroků.
Krok 1: Spusťte makro aplikace Excel a definujte název proměnné.
Kód:
Sub Ubound_Example1 () Dim ArrayLength (0 až 4) jako řetězec

Krok 2: K tomuto názvu pole přiřadím hodnoty.
Kód:
Sub Ubound_Example1 () Dim ArrayLength (0 až 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = „VBA Class“ End Sub

Krok 3: Nyní pomocí okna se zprávou s funkcí UBOUND uvidíme maximální délku pole.
Kód:
Sub Ubound_Example1 () Dim ArrayLength (0 až 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Upper Bound Length is:" & UBound (ArrayLength) End Sub

Krok 4: Spusťte tento kód stisknutím klávesy F5, nebo můžete kód spustit také ručně, jak je znázorněno na následujícím snímku obrazovky.

V okně se zprávou se zobrazí číslo horní hranice pole, které se zobrazí v poli se zprávou.

Stejně jako pomocí funkce Excel VBA UBOUND můžeme získat horní hranici délky pole.
Příklad č. 2 - Použití funkce Excel VBA UBOUND ke kopírování dat
Předpokládejme, že máte seznam dat v jednom listu aplikace Excel, jako je ten níže.

Tato data se budou denně aktualizovat a při každé aktualizaci je budete muset zkopírovat do nového listu. Ruční aktualizace bude na vašem pracovišti trvat značně dlouho, ale ukážu vám jednoduchý kód makra, který to zautomatizuje.
Krok 1: Vytvořte makro a definujte proměnnou pole.
Kód:
Sub Ubound_Example2 () Dim DataRange () jako varianta End Sub

Krok 2: Nyní aktivujte datový list rozhodčím podle jeho názvu.
Kód:
Sub Ubound_Example2 () Dim DataRange () jako listy variant („datový list“). Aktivujte End Sub

Krok 3: Nyní přiřaďte rozsah dat k definované proměnné pomocí níže uvedeného kódu.
Kód:
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 Vymazat DataRange End Sub

Věci k zapamatování
- UBOUND vrátí maximální délku pole.
- Pole začíná od 0, ne od 1.
- Pokud chcete nižší hodnotu pole, musíte použít VBA LBOUND.
- Pokud má pole více než jednu dimenzi, musíte také zadat číslo dimenze.