VBA UBound - Kako uporabljati funkcijo Excel VBA UBound (primeri)

Kazalo:

Anonim

Excel VBA funkcija UBound

Kako pogosto pridete do situacije, ko morate omeniti največjo dolžino ali zgornjo mejo podatkov matrike, ki deluje z Excelom? Večino časa, kajne? In kako najdete isto? Mogoče večino časa ročno. Vendar ga lahko avtomatizirate in dobite največjo dolžino ali zgornjo mejo matrike s pomočjo funkcije VBA, imenovane UBound.

Poleg tega ima najlepši način, da prebijete skozi. Če v svoji matriki uporabljate zanko For, ste zagotovo želeli zapeti vse elemente matrike. V tem primeru bi bilo mučno delo, če bi ročno ugotovili zgornjo mejo in jo omenili v zanki. Zmanjšala bo tudi splošnost kode. Zato je funkcija VBA UBound v takšnih scenarijih še kako primerna.

UBound pomeni zgornjo mejo in daje zgornjo mejo ali največjo dolžino matrike v Excelu VBA.

Formula za funkcijo UBound v Excelu VBA

Excel VBA UBound funkcija ima naslednjo skladnjo.

 UBound (ime matrice (, razsežnost)) 

Kje,

  • Ime array : Ime matrice, ki ste jo določili. Ta argument je obvezen / obvezen argument.
  • Dimenzija: neobvezen argument, ki določa dimenzijo matrike. Naj gre za enodimenzionalni, dvodimenzionalni ali večdimenzionalni niz. Privzeto bo prevzel enodimenzionalni niz, če ni določen.

Ker ima ta funkcija samo dva argumenta, si si sintaksi te funkcije veliko lažje zapomnimo.

Kako uporabljati funkcijo Excel VBA UBound?

Spoznali bomo uporabo funkcije VBA UBound z nekaj primeri v Excelu.

To predlogo VBA UBound Excel lahko prenesete tukaj - VBA Predloga UBound Excel

Primer # 1 - VBA UBound z enodimenzionalnim nizom

Za uporabo funkcije UBound v VBA sledite spodnjim korakom.

1. korak: Na zavihku Developer kliknite na Visual Basic, da odprete urejevalnik VB.

2. korak: Kliknite Vstavi in izberite zavihek Modul, da v VBE dodate nov prazen modul.

3. korak: V VBE začnite pisati makro in določite ime spremenljivke.

Koda:

 Sub Onedm_Ubound () Dim IndiaCity (4) Kot niz vrstic Sub 

Tu je spremenljivka IndiaCity definirana s 5 elementi. Vrsta spremenljivke je niz.

Opomba: Niz se začne od 0 (nič). Torej bo ta niz sestavljen iz 5 elementov.

4. korak: Dodelite vrednosti elementom matrike.

Koda:

 Pod Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "Končaj Sub 

Tu ima nulti element dodeljeno vrednost kot "Mumbai", prvi element ima vrednost, dodeljeno kot "Bengaluru" in tako naprej.

5. korak: Uporabite funkcijo UBound skupaj z MsgBoxom, da dobite zgornjo mejo za matriko.

Koda:

 Pod Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune Zgornja meja "MsgBox" za matriko je: "& UBound (IndiaCity) End Sub 

6. korak: Zaženite to kodo tako, da neposredno pritisnete F5 ali ročno pritisnete na gumb Run na zgornji levi plošči. Pojavi se okno s sporočilom " Zgornja meja za matriko je: 4 ".

Upoštevajte, da funkcija UBound ne odkrije zgornje meje elementov Array. Pravkar ugotovi največje število elementov, ki jih ima matrika.

Primer # 2 - VBA UBound z dvodimenzionalnim nizom

Za uporabo funkcije UBound v VBA sledite spodnjim korakom.

1. korak: Določite spremenljivko, ki lahko vsebuje dvodimenzionalne podatke.

Koda:

 Sub TwoDm_UBound () Dim Array_Test (0 do 6, 1 do 8) Kot niz vrstic 

2. korak: Določite novo spremenljivo sporočilo in ga uporabite pod MsgBox. Ta spremenljivka nam bo pomagala tiskati zgornje meje obeh dimenzij hkrati.

Koda:

 Sub TwoDm_UBound () Dim Array_Test (0 do 6, 1 do 8) kot niz zatemnjenega sporočila MsgBox sporočilo konec pod 

Korak 3: Zdaj poskusite z naslednjimi stavki, ki sistemu omogočajo tiskanje obeh dimenzij matrike pod isto polje.

Koda:

 Sub TwoDm_UBound () Dim Array_Test (0 do 6, 1 do 8) As String Dim Message = = "Zgornja meja prve dimenzije je:" & UBound (Array_Test, 1) & vbCrLf Message = Sporočilo & "Zgornja meja za drugo dimenzijo je : "& UBound (Array_Test, 2) & vbCrLf MsgBox sporočilo konec pod 

Dva stavka, omenjena v zgornji kodi, sistemu omogočata tiskanje obeh dimenzij v isto polje s sporočilom. Prvi stavek shrani vrednost zgornje meje za prvo dimenzijo v spremenljivki Sporočilo in konča vrstico (vbCrLf). Drugi stavek doda prvo vrednost, dodeljeno spremenljivki Sporočilo, in jo združi z zgornjo mejo drugih dimenzij s pojavnim sporočilom.

Ker je vbCrLf v obeh stavkih uporabljen, v obeh stavkih deluje kot vrnitev nove vrstice / prevoza.

4. korak: Zaženite kodo s pritiskom na tipko F5 ali Run in poglejte izhod.

Na podobnih črtah lahko gremo do več dimenzij in za vsako od njih vidimo zgornjo mejo.

Primer # 3 - UBound funkcija za samodejno posodabljanje podatkov v listu

Predpostavimo, da imate nabor podatkov, kot je prikazano na posnetku zaslona spodaj.

Ti podatki se posodobijo in morate posodobljene podatke kopirati vsake toliko časa. Zdaj je res mučno delo vedno preveriti, ali obstajajo posodobitve podatkov in jih nato kopirati na nov list. Veliko časa tudi porabi. Ali ga lahko poskusimo avtomatizirati s funkcijo UBound v VBA? Pa poglejmo.

Sledite spodnjim korakom za samodejno posodabljanje podatkov na listu s funkcijo VBA UBound:

1. korak: Določite spremenljivko z ustvarjanjem makra.

Koda:

 Sub Ex3_UBound () Dim DataUpdate () kot različica konec Sub 

2. korak: Aktivirajte delovni list, ki vsebuje vaše podatke. V tem primeru je ime lista " Podatki ".

Koda:

 Sub Ex3_UBound () Dim DataUpdate () kot različice ("Podatki"). 

3. korak: razponu dodelite spremenljivko, ki smo jo pravkar ustvarili. V ta namen bomo uporabili paleto aktiviranih listov.

Koda:

 Sub Ex3_UBound () Dim DataUpdate () kot različice listov ("Podatki"). Aktivirajte DataUpdate = obseg ("A2", obseg ("A1"). Konec (xlDown). Konec (xlToRight)) konec pod 

4. korak: Dodajte nov delovni list v svoj Excel, kamor lahko posodobljene podatke kopirate in prilepite.

Koda:

 Pod Ex3_UBound () Dim DataUpdate () kot različice listov ("Podatki"). Aktivirajte DataUpdate = obseg ("A2", obseg ("A1"). Konec (xlDown). Konec (xlToRight)) Workheets.Add End Sub 

5. korak: Zdaj uporabite spodnjo kodno vrstico, ki omogoča, da se podatki iz lista »Podatki« kopirajo in samodejno prilepijo na novo ustvarjen list excel.

Koda:

 Pod Ex3_UBound () Dim DataUpdate () kot različice listov ("Podatki"). Aktivirajte DataUpdate = obseg ("A2", obseg ("A1"). Konec (xlDown). Konec (xlToRight)) delovne liste. ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = Podatki o koncu posodobitve podatkov 

Zgornja koda bo izravnala celice z lista „Podatki“ navzgor do zgornje meje, ki jih je mogoče pridobiti z uporabljeno funkcijo UBound in dodeliti obseg spremenljivki DataUpdate.

6. korak: Zaženite kodo s pritiskom na tipko F5 ali Run in poglejte izhod.

Kot lahko vidite, je v delovnem zvezku Excela dodan nov list, kjer se vsi podatki iz lista »Podatki« samodejno kopirajo.

To je dinamična koda. Če hočem reči, da je dinamično, je, če dodam stolpec in vrstice, se bo samodejno kopiral na nov list.

7. korak: V podatke dodamo nekaj vrstic in stolpcev in preverimo, ali dejansko deluje.

Korak 8: Po posodobitvi podatkovnega lista ponovno pritisnite gumb Zaženi in si oglejte čarovnijo.

Če vidite, se doda nov list (obarvan) in doda nov stolpec Age ter dve novi vrstici. Pomeni, da karkoli posodobimo v glavni datoteki (Data), bo ta koda samodejno kopirala vse iz tega in ga prilepila na nov list.

Stvari, ki jih je treba zapomniti

  • UBound daje zgornjo mejo / največjo dolžino matrike in ne zgornjo mejo podatkovnih točk, prisotnih v matriki.
  • Niz se vedno začne z 0. mesta vzporedno z večino programskih jezikov, kot so C, C ++, Python.
  • Če je vaš niz večdimenzionalen, morate določiti tudi argument dimenzije, ki sprejme številčne celotne vrednosti, kot so 1, 2, 3, itd. 1 pomeni eno-dimenzionalno, 2 za dvodimenzionalno in tako naprej.

Priporočeni članki

To je vodnik za funkcijo VBA UBound. Tukaj smo razpravljali o uporabi funkcije Excel VBA UBound skupaj z nekaj praktičnimi primeri in naloženo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. VBA razdeljena funkcija s primeri
  2. Večstranska funkcija Excela
  3. VBA tekma
  4. PLAFILNA funkcija v Excelu
  5. Kako uporabljati delovne liste VBA?