Funcția VBA UBound - Cum se utilizează UBound în Excel VBA?

UBOUND sau, de asemenea, cunoscut sub numele de Upper Bound, această funcție în VBA este utilizată cu funcția sa opusă pe care LBOUND sau, de asemenea, cunoscută sub numele de funcția Lower Bound, utilizarea acestei funcții este de a defini lungimea unui tablou într-un cod și, așa cum sugerează și numele, UBOUND este folosit pentru a defini limita superioară a matricei.

Funcția VBA UBOUND

Cum spuneți lungimea maximă a matricei în Excel? Da, putem vedea și actualiza manual lungimea maximă a matricei, dar dacă o faceți toate acestea, atunci astăzi este sfârșitul acesteia, deoarece avem o funcție numită UBOUND pentru a determina lungimea maximă a matricei. Urmați acest articol pentru a avea mai multe cunoștințe despre funcția UBOUND în Excel VBA.

UBOUND înseamnă Upper Bound. De multe ori, în codificare, este posibil să avem nevoie să găsim lungimea maximă a matricei. De exemplu, MyResult (24) înseamnă numele matricei MyResult deține 25 de valori pentru că matricea începe de la zero, nu de la una. Deci 24 înseamnă +1, adică un total de 25 de valori.

Aici lungimea maximă a matricei este 24. În loc să furnizăm manual lungimea matricei, putem folosi funcția încorporată UBOUND pentru a obține lungimea maximă a matricei.

Codul este: UBOUND (MyResult), adică UBOUND (24)

Deci funcția Excel VBA UBOUND reprezintă limita superioară a dimensiunii matricei.

Cum se utilizează funcția VBA UBound în Excel?

Formula VBA UBOUND este foarte simplă, deoarece are doar doi parametri.

UBound (Arrayname (, Dimensiune))
  • Nume matrice: Acesta este numele numelui matricei pe care l-am definit. De exemplu, în exemplul de mai sus, MyResult este numele matricei.
  • (Dimensiune): Dacă tabloul are mai multe dimensiuni, atunci trebuie să specificăm dimensiunea tabloului. Dacă îl ignorați, acesta va trata implicit prima dimensiune.

Funcția Excel VBA UBOUND este foarte utilă pentru determinarea lungimii buclelor în timpul rulării buclelor.

Exemple de funcții UBOUND în Excel VBA

Mai jos sunt exemple practice ale funcției VBA UBound.

Exemplul nr. 1

Pentru a începe procedura, permiteți-mi să scriu codul simplu. Urmați pașii de mai jos pentru a aplica funcția VBA UBOUND.

Pasul 1: Porniți macrocomanda excel și definiți numele variabilei.

Cod:

Sub Ubound_Example1 () Dim ArrayLength (0-4) ca șir

Pasul 2: Voi atribui valori acestui nume de matrice.

Cod:

Sub Ubound_Example1 () Dim ArrayLength (0 To 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Prieten" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = Sub-clasa „Clasa VBA”

Pasul 3: Acum, folosind o casetă de mesaj cu funcția UBOUND, vom vedea lungimea maximă a matricei.

Cod:

Sub Ubound_Example1 () Dim ArrayLength (0 To 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Prieten" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "Clasa VBA" MsgBox "Lungimea legată superioară este:" & UBound (ArrayLength) End Sub

Pasul 4: Rulați acest cod apăsând tasta F5 sau puteți rula codul manual, așa cum se arată în captura de ecran de mai jos.

Caseta de mesaje vă va arăta numărul din limita superioară a tabloului va fi afișat în caseta de mesaje.

Astfel, folosind funcția Excel VBA UBOUND, putem obține lungimea limită superioară a unui tablou.

Exemplul # 2 - Utilizarea funcției Excel VBA UBOUND pentru a copia datele

Să presupunem că aveți o listă de date într-o singură foaie Excel, precum cea de mai jos.

Aceste date vor fi actualizate zilnic și trebuie să le copiați pe noua foaie de fiecare dată când se actualizează. Actualizarea manuală va dura o perioadă considerabilă de timp la locul de muncă, dar vă voi arăta un cod macro simplu pentru a automatiza acest lucru.

Pasul 1: Creați o macro și definiți variabila matrice.

Cod:

Sub Ubound_Example2 () Dim DataRange () As Variant End Sub

Pasul 2: Acum activați foaia de date arbitrând la numele acesteia.

Cod:

Sub Ubound_Example2 () Dim DataRange () Ca foi variante ("Foaie de date"). Activați End Sub

Pasul 3: Acum atribuiți intervalul de date variabilei definite utilizând codul de mai jos.

Cod:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activați 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"). Activați DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Foi de lucru.Add Range (ActiveCell) , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Lucruri de amintit

  • UBOUND returnează lungimea maximă a tabloului.
  • Matricea începe de la 0, nu de la 1.
  • Dacă doriți valoarea mai mică a matricei, atunci trebuie să utilizați VBA LBOUND.
  • Dacă matricea are mai multe dimensiuni, atunci trebuie să specificați și numărul dimensiunii.

Articole interesante...