Excel VBA funkcija UBound
Koliko često se susrećete sa situacijom kada trebate spomenuti maksimalnu duljinu ili gornju granicu podataka niza koji rade s Excelom? Većinu puta, zar ne? I kako pronalazite isto? Možda ručno većinu vremena. Međutim, možete to automatizirati i dobiti maksimalnu duljinu ili gornju granicu niza pomoću VBA funkcije koja se zove UBound.
Štoviše, ima najljepši način za probijanje kroz njih. Ako, ako koristite, petlju For u svom polju, definitivno ste htjeli zarobiti sve elemente matrice. U tom bi slučaju bio naporan posao ručno saznati gornju granicu i spomenuti je u petlji. Također će umanjiti općenitost koda. Stoga, VBA UBound funkcija dobro dolazi u takvim scenarijima.
UBound označava gornju granicu i daje gornju granicu ili maksimalnu duljinu polja u Excel VBA.
Formula za UBound funkciju u Excelu VBA
Excel VBA UBound funkcija ima sljedeću sintaksu.
UBound (Naziv niza (, dimenzija))
Gdje,
- Naziv niza: Naziv definiranog polja. Ovaj je argument obvezan / potreban argument.
- Dimenzija: Neobvezni argument koji određuje dimenziju niza. Bilo da se radi o jednodimenzionalnom, dvodimenzionalnom ili višedimenzionalnom nizu. Prema zadanim postavkama pretpostavit će jednodimenzionalni niz ako nije naveden.
Kako ova funkcija ima samo dva argumenta, postaje mnogo lakše zapamtiti sintaksu ove funkcije.
Kako se koristi Excel VBA UBound funkcija?
Naučit ćemo kako koristiti VBA funkciju UBound s nekoliko primjera u Excelu.
Ovaj VBA UBound Excel predložak možete preuzeti ovdje - VBA UBound Excel predložakPrimjer # 1 - VBA UBound s jednodimenzionalnim nizom
Slijedite dolje navedene korake za upotrebu funkcije UBound u VBA.
Korak 1: Na kartici Developer kliknite na Visual Basic da biste otvorili VB uređivač.
Korak 2: Kliknite Umetanje i odaberite karticu Modul da biste dodali novi prazan modul u VBE.
Korak 3: U VBE započnite pisati makronaredbu i definirajte naziv varijable.
Kodirati:
Sub Onedm_Ubound () Dim IndiaCity (4) Kao string string Sub
Ovdje je varijabla IndiaCity definirana s 5 elemenata. Vrsta varijable je niz.
Napomena: Niz počinje od 0 (nula). Dakle, ovaj će se niz sastojati od 5 elemenata.Korak 4: Dodijelite vrijednosti elementima matrice.
Kodirati:
Pod Onedm_Ubound () Dim IndiaCity (4) Kao gudački IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "Završi Sub
Ovdje nulti element ima vrijednost dodijeljenu kao "Mumbai", Prvi element ima vrijednost dodijeljenu kao "Bengaluru" i tako dalje.
Korak 5: Upotrijebite funkciju UBound zajedno s MsgBoxom da biste dobili gornju granicu za niz.
Kodirati:
Pod Onedm_Ubound () Dim IndiaCity (4) Kao gudački IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune Gornja granica "MsgBox" za niz je: "& UBound (IndiaCity) Krajnji pot
Korak 6: Pokrenite ovaj kôd pritiskom na F5 izravno ili ručno pritiskom na gumb Run na gornjoj lijevoj ploči. Pojavit će se okvir s porukom " Gornja granica za niz je: 4 ".
Imajte na umu da funkcija UBound ne nalazi gornju granicu od elemenata Niz. Jednostavno otkriva maksimalni broj elemenata koje array drži.
Primjer # 2 - VBA UBound s dvodimenzionalnim nizom
Slijedite dolje navedene korake za upotrebu funkcije UBound u VBA.
Korak 1: Definirajte varijablu koja može sadržavati dvodimenzionalne podatke.
Kodirati:
Sub TwoDm_UBound () Dim Array_Test (0 do 6, 1 do 8) Kao string string Sub
Korak 2: Definirajte novu promjenjivu poruku i koristite je pod MsgBox. Ova će nam varijabla pomoći da ispisujemo gornje granice obje dimenzije istovremeno.
Kodirati:
Sub TwoDm_UBound () Dim Array_Test (0 do 6, 1 do 8) Kao niz niza poruka MsgBox Message End Sub
Korak 3: Pokušajte sa sljedećim izjavama koje sustavu omogućuju ispis obje dimenzije polja pod istim okvirom za poruke.
Kodirati:
Sub TwoDm_UBound () Dim Array_Test (0 do 6, 1 do 8) As String Dim Message = = "Gornja granica za prvu dimenziju je:" & UBound (Array_Test, 1) & vbCrLf Message = Poruka & "Gornja granica za drugu dimenziju je : "& UBound (Array_Test, 2) & vbCrLf MsgBox poruka Kraj Pot
Dvije izjave spomenute u gore navedenom kodu omogućuju sustavu da ispisuje obje dimenzije u istom okviru s porukama. Prva izjava pohranjuje vrijednost gornje granice prve dimenzije u varijabilnoj poruci i završava liniju (vbCrLf). Druga izjava dodaje prvu vrijednost dodijeljenu varijabli Poruka i kombinira je s gornjom granicom drugih dimenzija s skočnom porukom.
Kako se vbCrLf koristi u obje izjave, ovdje funkcionira kao povratni redak / prijenos u obje izjave.
Korak 4: Pokrenite kod pritiskom na tipku F5 ili Run i pogledajte izlaz.
Na sličnim crtama možemo ići do više dimenzija i vidjeti gornju granicu za svaku od njih.
Primjer # 3 - UBound funkcija za automatsko ažuriranje podataka u listu
Pretpostavimo da imate skup podataka kao što je prikazano na snimci zaslona ispod.
Ti se podaci ažuriraju i stalno morate kopirati ažurirane podatke. Sada je zaista naporan posao uvijek provjeriti ažuriranja podataka, a zatim ih kopirati na novi list. To također troši puno vremena. Možemo li to pokušati automatizirati pomoću funkcije UBound u VBA? Da vidimo.
Slijedite dolje navedene korake za automatsko ažuriranje podataka na listu pomoću VBA funkcije UBound:
Korak 1: Definirajte varijablu stvaranjem makronaredbe.
Kodirati:
Sub Ex3_UBound () Dim DataUpdate () kao varijanta Kraj Sub
2. korak: Aktivirajte radni list koji sadrži vaše podatke. U ovom slučaju, list je " Podaci ".
Kodirati:
Sub Ex3_UBound () Dim DataUpdate () kao varijantni listovi ("Podaci"). Aktivirajte Kraj Sub
3. korak: dodijelite raspon varijabli koju smo upravo stvorili. U tu svrhu koristit ćemo raspon aktiviranih listova.
Kodirati:
Sub Ex3_UBound () Dim DataUpdate () kao varijantni listovi ("Podaci"). Aktivirajte DataUpdate = raspon ("A2", raspon ("A1"). Kraj (xlDown). Kraj (xlToRight)) Kraj Sub
Korak 4: Dodajte novi radni list u svoj Excel, gdje se ažurirani podaci mogu kopirati i zalijepiti.
Kodirati:
Sub Ex3_UBound () Dim DataUpdate () kao varijabilne tablice ("Podaci"). Aktivirajte DataUpdate = raspon ("A2", raspon ("A1"). Kraj (xlDown). Kraj (xlToRight)) Radni listovi.Dodaj kraj Sub
Korak 5: Upotrijebite donju liniju koda koja omogućuje kopiranje i lijepljenje podataka s lista "Podaci" na novo stvoreni excel list.
Kodirati:
Sub Ex3_UBound () Dim DataUpdate () kao varijabilni listovi ("Podaci"). Aktivirajte DataUpdate = raspon ("A2", raspon ("A1"). Kraj (xlDown). Kraj (xlToRight)) Radni listovi.Dodati raspon (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = Podatke o završetku ažuriranja podataka
Gornji kôd pomaknut će ćelije s lista "Podaci" do gornje granice koje se mogu dobiti korištenom funkcijom UBound i dodijeliti raspon varijabli DataUpdate.
Korak 6: Pokrenite kod pritiskom na tipku F5 ili Run i pogledajte izlaz.
Kao što vidite, u programu Excel Workbook dodaje se novi list u kojem se automatski kopiraju svi podaci s lista "Podaci".
Ovo je dinamički kod. Ono što hoću reći da je dinamično jest, iako dodajem stupac i redove, automatski će se kopirati na novi list.
Korak 7: Dodajmo retke i stupce u podatke i vidimo da li to stvarno djeluje.
Korak 8: Ponovno pritisnite gumb Pokreni nakon ažuriranja lista s podacima i čari.
Ako vidite, dodaje se novi list (obojen) i dodaje se novi stupac Age zajedno s dva nova reda kao i na tom listu. To znači, što god ažuriramo u glavnoj datoteci (Podaci), ovaj će kôd automatski kopirati sve podatke i zalijepiti ga u novi list.
Stvari koje treba zapamtiti
- UBound daje gornju granicu / maksimalnu duljinu polja, a ne gornju granicu iz podatkovnih točaka prisutnih u polju.
- Niz uvijek započinje s 0. položaja paralelno s većinom programskih jezika poput C, C ++, Python.
- Ako je vaš niz višedimenzionalan, morate navesti i argument dimenzije koji uzima brojčane cjelobrojne vrijednosti kao što su 1, 2, 3, itd. 1 označava Jednodimenziju, 2 Dvodimenzionalno itd.
Preporučeni članci
Ovo je vodič za VBA funkciju UBound. Ovdje smo raspravljali o tome kako koristiti Excel VBA UBound funkciju zajedno s nekoliko praktičnih primjera i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -
- VBA Split funkcija s primjerima
- Velika radna funkcija Excela
- VBA utakmica
- GLAVNA funkcija u Excelu
- Kako se koriste VBA listovi?