Funkce VBA UBound | Jak používat UBound v aplikaci Excel VBA?

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 děláte všechny tyto, zatímco dnes je 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 ji 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.

Tuto šablonu funkcí VBA UBound si můžete stáhnout zde - Šablona funkcí VBA UBound

Příklad č. 1

Pro zahájení řízení mi dovolte 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í schránky 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 také spustit kód ručně, jak je znázorněno na následujícím snímku obrazovky.

okno se zprávou zobrazí číslo horní hranice pole 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 je třeba je při každé aktualizaci 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 

Krok 4: Nyní do sešitu přidejte nový list.

Kód:

 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: Nyní přidejte data do nově přidaného listu pomocí funkce Excel VBA UBOUND ve formě 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)) Worksheets.Add Range (ActiveCell) , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange End Sub 

Výše uvedený kód vyrovná buňky maximální délkou vrácenou funkcí UBOUND a tento rozsah se bude rovnat hodnotě názvu pole „ DataRange

Krok 6: Nyní spusťte tento kód, který vloží hodnotu do nového listu.

Tento kód je dynamický, protože i když se data zvětšují vodorovně a svisle, automaticky převezmou rozsah. Nyní přidám k datům několik fiktivních řádků.

Nyní tento kód znovu spustím, nyní přidá také nově přidané řádky.

Kód:

 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.