VBA viazaná Ako používať funkciu Excel VBA UBound (príklady)

Obsah:

Anonim

Funkcia Excel VBA UBound

Ako často prichádzate so situáciou, keď musíte uviesť maximálnu dĺžku alebo hornú hranicu údajov poľa, ktoré pracujú s programom Excel? Väčšinou? A ako to, čo nájdete? Možno väčšinu času manuálne. Môžete ho však zautomatizovať a získať maximálnu dĺžku alebo hornú hranicu poľa pomocou funkcie VBA s názvom UBound.

Okrem toho má najkrajší spôsob, ako sa ním pretáčať. Napríklad, ak vo svojom poli používate slučku For, určite by ste chceli slučiť všetky prvky poľa. V takom prípade by bolo únavné nájsť hornú hranicu manuálne a spomenúť ju v slučke. Zníži sa tým aj všeobecnosť kódu. Preto je v takýchto scenároch užitočná funkcia VBA UBound.

UBound znamená hornú hranicu a udáva hornú hranicu alebo maximálnu dĺžku poľa v programe Excel VBA.

Vzorec pre funkciu UBound v programe Excel VBA

Funkcia Excel VBA UBound má nasledujúcu syntax.

 UBound (Arrayname (, Dimension)) 

Kde,

  • Arrayname: Názov poľa, ktoré ste definovali. Tento argument je povinný / povinný.
  • Dimension: Voliteľný argument, ktorý určuje rozmer poľa. Či už ide o jednorozmerné, dvojrozmerné alebo viacrozmerné pole. V predvolenom nastavení bude predpokladať jednorozmerné pole, pokiaľ nie je uvedené.

Pretože táto funkcia obsahuje iba dva argumenty, je oveľa ľahšie zapamätať si syntax tejto funkcie.

Ako používať funkciu Excel VBA UBound?

Naučíme sa používať funkciu VBA UBound s niekoľkými príkladmi v Exceli.

Túto šablónu aplikácie VBA UBound Excel si môžete stiahnuť tu - šablónu VBA UBound Excel

Príklad č. 1 - VBA UBound s jednorozmerným poľom

Ak chcete použiť funkciu UBound vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Na karte Developer kliknite na Visual Basic a otvorte editor VB.

Krok 2: Kliknite na Vložiť a vyberte kartu Modul, aby ste do VBE pridali nový prázdny modul.

Krok 3: Vo VBE začnite písať makro a definujte názov premennej.

kód:

 Sub Onedm_Ubound () Dim IndiaCity (4) ako String End Sub 

Tu je premenná IndiaCity definovaná s 5 prvkami. Typ premennej je reťazec.

Poznámka: Pole začína od 0 (nula). Toto pole bude teda pozostávať z 5 prvkov.

Krok 4: Priradenie hodnôt prvkom poľa.

kód:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Bombaj" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "End Sub 

Tu má prvok nuly hodnotu priradenú ako „Mumbai“, prvý prvok má hodnotu priradenú ako „Bengaluru“ atď.

Krok 5: Pomocou funkcie UBound spolu s MsgBoxom získate hornú hranicu pre pole.

kód:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Bombaj" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "MsgBox" Horná hranica pre pole je: "& UBound (IndiaCity) End Sub 

Krok 6: Spustite tento kód zasiahnutím klávesu F5 priamo alebo ručne stlačením tlačidla Spustiť na ľavom hornom paneli. Zobrazí sa okno so správou „ Horná hranica pre pole je: 4 “.

Upozorňujeme, že funkcia UBound nezistila hornú hranicu prvkov poľa. Zistí iba maximálny počet prvkov, ktoré pole obsahuje.

Príklad č. 2 - VBA UBound s dvojrozmerným poľom

Ak chcete použiť funkciu UBound vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Definujte premennú, ktorá dokáže uchovávať dvojrozmerné údaje.

kód:

 Sub TwoDm_UBound () Dim Array_Test (0 až 6, 1 až 8) ako koniec reťazca Sub 

Krok 2: Definujte novú premennú správu a použite ju v MsgBox. Táto premenná nám pomôže tlačiť horné hranice oboch rozmerov súčasne.

kód:

 Sub TwoDm_UBound () Dim Array_Test (0 až 6, 1 až 8) ako reťazec Dim Message MsgBox Message End Sub 

Krok 3: Vyskúšajte nasledujúce príkazy, ktoré umožňujú systému tlačiť obe rozmery poľa v rovnakom okne správy.

kód:

 Sub TwoDm_UBound () Dim Array_Test (0 až 6, 1 až 8) As String Dim Message Message = "Horná hranica pre prvú dimenziu je:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "Horná hranica pre druhú dimenziu je : "& UBound (Array_Test, 2) & vbCrLf MsgBox Message End Sub 

Dva výroky uvedené vo vyššie uvedenom kóde umožňujú systému tlačiť obe dimenzie v rovnakom okne správy. Prvý príkaz ukladá hodnotu hornej hranice pre prvú dimenziu do premennej Správa a končí riadok (vbCrLf). Druhý príkaz pridá prvú hodnotu priradenú k premennej Správa a kombinuje ju s hornou hranicou druhých dimenzií s kontextovou správou.

Pretože sa vbCrLf používa v obidvoch príkazoch, v oboch príkazoch tu funguje ako návrat do nového riadku / riadku.

Krok 4: Spustite kód stlačením klávesy F5 alebo Run a pozrite si výstup.

Na podobných riadkoch môžeme ísť do viacerých dimenzií a vidieť hornú hranicu pre každú z nich.

Príklad č. 3 - Funkcia UBound na automatickú aktualizáciu údajov v hárku

Predpokladajme, že máte súbor údajov, ako je to znázornené na obrázku nižšie.

Tieto údaje sa aktualizujú a aktualizované údaje musíte občas kopírovať. Teraz je to skutočne únavná úloha vždy skontrolovať aktualizácie údajov a potom ich skopírovať na nový list. Tiež to zaberá veľa času. Môžeme skúsiť automatizáciu pomocou funkcie UBound vo VBA? Pozrime sa.

Ak chcete automaticky aktualizovať údaje v hárku pomocou funkcie VBA UBound, postupujte podľa nasledujúcich krokov:

Krok 1: Definujte premennú vytvorením makra.

kód:

 Sub Ex3_UBound () Dim DataUpdate () ako koniec variantu Sub 

Krok 2: Aktivujte list, ktorý obsahuje vaše údaje. V takom prípade je názov hárka „ Údaje “.

kód:

 Sub Ex3_UBound () Dim DataUpdate () ako listy variantov („Data“). Aktivácia End Sub 

Krok 3: Priraďte rozsah premennej, ktorú sme práve vytvorili. Na tento účel použijeme rozsah aktivovaných listov.

kód:

 Sub Ex3_UBound () Dim DataUpdate () ako listy variantov ("Data"). Aktivujte DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub 

Krok 4: Pridajte do svojho Excelu nový pracovný hárok, kde je možné skopírovať a vložiť aktualizované údaje.

kód:

 Podm. 

Krok 5: Teraz použite nasledujúci riadok kódu, ktorý umožňuje automatické kopírovanie a vloženie údajov z listu „Údaje“ do novovytvoreného listu Excel.

kód:

 Sub Ex3_UBound () Dim DataUpdate () ako listy variantov ("Data"). Aktivujte DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub 

Vyššie uvedený kód vyrovnáva bunky od hárku „Data“ až po hornú hranicu, ktorú možno získať použitou funkciou UBound, a priraďuje rozsah premennej DataUpdate.

Krok 6: Spustite kód stlačením klávesy F5 alebo Run a pozrite si výstup.

Ako vidíte, do zošita programu Excel je pridaný nový hárok, v ktorom sa automaticky kopírujú všetky údaje z hárku „Údaje“.

Toto je dynamický kód. Chcem tým povedať, že je dynamický, aj keď pridávam stĺpce a riadky, automaticky sa skopíruje na nový hárok.

Krok 7: K údajom pridáme niekoľko riadkov a stĺpcov a zistíme, či to skutočne funguje.

Krok 8: Po aktualizácii dátového listu znova stlačte tlačidlo Spustiť a pozrite sa na kúzlo.

Ak vidíte, pridá sa nový hárok (farebný) a do tohto hárka sa pridá aj nový stĺpec Vek spolu s dvoma novými riadkami. To znamená, že bez ohľadu na to, čo aktualizujeme v hlavnom súbore (údaje), tento kód z toho automaticky skopíruje všetko a vloží ho na nový list.

Čo je potrebné pamätať

  • UBound udáva hornú hranicu / maximálnu dĺžku poľa a nie hornú hranicu z dátových bodov prítomných v poli.
  • Pole vždy začína od 0. pozície paralelne s väčšinou programovacích jazykov ako C, C ++, Python.
  • Ak je vaše pole viacrozmerné, musíte zadať aj argument dimenzie, ktorý berie číselné celé hodnoty ako 1, 2, 3 atď. 1 znamená jednorozmerný, 2 dvojrozmerný atď.

Odporúčané články

Toto je sprievodca funkciou UBound VBA. Tu diskutujeme o tom, ako používať funkciu Excel VBA UBound spolu s niekoľkými praktickými príkladmi a šablónou Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. VBA rozdelená funkcia s príkladmi
  2. Excel Veľké funkcie
  3. VBA Match
  4. STROPNÉ Funkcia v Exceli
  5. Ako používať pracovné hárky VBA?