Funkcia VBA UBound - Ako používať UBound v programe Excel VBA?

UBOUND alebo tiež známy ako Upper Bound, táto funkcia vo VBA sa používa s opačnou funkciou, ktorú LBOUND alebo tiež známa ako Lower Bound, pomocou tejto funkcie je možné definovať dĺžku poľa v kóde a ako už názov napovedá UBOUND sa používa na definovanie hornej hranice poľa.

Funkcia VBA UBOUND

Ako zistíte maximálnu dĺžku poľa v programe Excel? Áno, môžeme manuálne vidieť a aktualizovať maximálnu dĺžku poľa, ale ak to robíte všetky tieto, potom je dnes koniec, pretože na určenie maximálnej dĺžky poľa máme funkciu s názvom UBOUND. V tomto článku nájdete ďalšie informácie o funkcii UBOUND v programe Excel VBA.

UBOUND je skratka pre Upper Bound. Pri kódovaní môžeme často vyžadovať vyhľadanie maximálnej dĺžky poľa. Napríklad MyResult (24) znamená názov poľa MyResult obsahuje 25 hodnôt, pretože pole začína od nuly, nie od jednej. Takže 24 znamená +1, teda celkovo 25 hodnôt.

Tu je maximálna dĺžka poľa 24. Namiesto manuálneho zadávania dĺžky poľa môžeme na získanie maximálnej dĺžky poľa použiť vstavanú funkciu UBOUND.

Kód je: UBOUND (MyResult), tj. UBOUND (24)

Funkcia Excel VBA UBOUND teda predstavuje hornú hranicu veľkosti poľa.

Ako používať funkciu VBA UBound v programe Excel?

Vzorec VBA UBOUND je veľmi jednoduchý, pretože má iba dva parametre.

UBound (Arrayname (, Dimension))
  • Názov poľa: Toto je názov názvu poľa, ktorý sme definovali. Napríklad vo vyššie uvedenom príklade je MyResult názov poľa.
  • (Dimenzia): Ak má pole viac ako jednu dimenziu, musíme určiť rozmer poľa. Ak to ignorujete, bude predvolene považovať prvú dimenziu.

Funkcia Excel VBA UBOUND je veľmi užitočná pri určovaní dĺžky slučiek pri ich spustení.

Príklady funkcie UBOUND v programe Excel VBA

Ďalej uvádzame praktické príklady funkcie VBA UBound.

Príklad č

Na začatie konania mi dovoľte napísať jednoduchý kód. Podľa pokynov uvedených nižšie použite funkciu VBA UBOUND.

Krok 1: Spustite makro programu Excel a definujte názov premennej.

Kód:

Sub Ubound_Example1 () Dim ArrayLength (0 až 4) ako reťazec

Krok 2: Tomuto názvu poľa priradím hodnoty.

Kód:

Sub Ubound_Example1 () Dim ArrayLength (0 až 4) As String ArrayLength (0) = "Ahoj" ArrayLength (1) = "Priateľ" ArrayLength (2) = "Vitajte" ArrayLength (3) = "až" ArrayLength (4) = „Trieda VBA“ Koncový pod

Krok 3: Teraz pomocou schránky so správou s funkciou UBOUND uvidíme maximálnu dĺžku poľa.

Kód:

Sub Ubound_Example1 () Dim ArrayLength (0 až 4) As String ArrayLength (0) = "Ahoj" ArrayLength (1) = "Priateľ" ArrayLength (2) = "Vitajte" ArrayLength (3) = "až" ArrayLength (4) = „VBA Class“ MsgBox „Upper Bound Length is:“ & UBound (ArrayLength) End Sub

Krok 4: Spustite tento kód stlačením klávesu F5, alebo ho môžete spustiť aj manuálne, ako je znázornené na nasledujúcom obrázku.

V okne so správou sa zobrazí horná hranica čísla poľa, ktoré sa zobrazí v poli so správou.

Takto pomocou funkcie Excel VBA UBOUND môžeme získať hornú hranicu dĺžky poľa.

Príklad č. 2 - Použitie funkcie Excel VBA UBOUND na kopírovanie údajov

Predpokladajme, že máte zoznam údajov v jednom hárku programu Excel, ako je tento uvedený nižšie.

Tieto údaje sa budú aktualizovať každý deň a pri každej aktualizácii je potrebné tieto údaje skopírovať do nového hárka. Manuálna aktualizácia bude na vašom pracovisku trvať dosť času, ale ukážem vám jednoduchý kód makra, ktorý to zautomatizuje.

Krok 1: Vytvorte makro a definujte premennú poľa.

Kód:

Sub Ubound_Example2 () Dim DataRange () ako variant End Sub

Krok 2: Teraz aktivujte údajový hárok rozhodovaním podľa jeho názvu.

Kód:

Sub Ubound_Example2 () Dim DataRange () ako listy variantov („údajový list“). Aktivujte End Sub

Krok 3: Teraz pomocou nižšie uvedeného kódu priraďte rozsah údajov k definovanej premennej.

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 Vymazať DataRange End Sub

Na čo treba pamätať

  • UBOUND vráti maximálnu dĺžku poľa.
  • Pole začína od 0, nie od 1.
  • Ak chcete nižšiu hodnotu poľa, musíte použiť VBA LBOUND.
  • Ak má pole viac ako jednu dimenziu, musíte tiež zadať číslo dimenzie.

Zaujímavé články...