VBA UBound-funktion - Hur använder jag UBound i Excel VBA?

Innehållsförteckning

UBOUND eller även känd som Upper Bound, denna funktion i VBA används med dess motsatta funktion som LBOUND eller även känd som Lower Bound-funktion, användningen av denna funktion är att definiera längden på en matris i en kod och som namnet antyder UBOUND används för att definiera matrisens övre gräns.

VBA UBOUND-funktion

Hur anger du den maximala längden på arrayen i Excel? Ja, vi kan manuellt se och uppdatera matrisens maximala längd men om du gör allt detta medan det är i dag är det slutet på det eftersom vi har en funktion som heter UBOUND för att bestämma matrisens maximala längd. Följ den här artikeln för att få mer kunskap om UBOUND-funktionen i Excel VBA.

UBOUND står för Upper Bound. Ofta vid kodning kan vi behöva hitta den maximala längden på matrisen. Exempelvis MyResult (24) organ array namn MyResult rymmer 25 värden till det eftersom array börjar från noll, inte från en. Så 24 betyder +1, dvs totalt 25 värden.

Här är arrayens maximala längd 24. I stället för att tillhandahålla arraylängden manuellt kan vi använda den inbyggda funktionen UBOUND för att få den maximala längden på arrayen.

Koden är: UBOUND (MyResult), dvs UBOUND (24)

Så Excel VBA UBOUND-funktionen representerar den övre gränsen för matrisstorlek.

Hur använder jag VBA UBound-funktionen i Excel?

Formeln för VBA UBOUND är väldigt enkel eftersom den bara har två parametrar.

UBound (Arrayname (, Dimension))
  • Array Name: Detta är namnet på arraynamnet vi har definierat. Till exempel, i ovanstående exempel är MyResult arraynamnet .
  • (Dimension): Om matrisen har mer än en dimension måste vi ange dimensionen för matrisen. Om du ignorerar det kommer den första dimensionen att behandlas som standard.

Excel VBA UBOUND-funktionen är mycket användbar för att bestämma slingornas längd medan du kör slingorna.

Exempel på UBOUND-funktion i Excel VBA

Nedan följer de praktiska exemplen på VBA UBound-funktionen.

Exempel 1

Låt mig skriva den enkla koden för att inleda förfarandet. Följ stegen nedan för att tillämpa VBA UBOUND-funktionen.

Steg 1: Starta excel-makrot och definiera variabelnamnet.

Koda:

Sub Ubound_Example1 () Dim ArrayLength (0 till 4) Som sträng

Steg 2: Jag tilldelar värden till det här arraynamnet.

Koda:

Sub Ubound_Example1 () Dim ArrayLength (0 To 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" End Sub

Steg 3: Nu, med hjälp av en meddelanderuta med UBOUND-funktionen, ser vi den maximala längden på matrisen.

Koda:

Sub Ubound_Example1 () Dim ArrayLength (0 To 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Upper Bound Length är:" & UBound (ArrayLength) End Sub

Steg 4: Kör den här koden genom att trycka på F5-tangenten, eller så kan du också köra koden manuellt, som visas på skärmbilden nedan.

Meddelandefältet visar att det övre gränsnumret för matrisen kommer att visas i meddelandefältet.

Så här med hjälp av Excel VBA UBOUND-funktionen kan vi få den övre gränsen för en matris.

Exempel # 2 - Använda Excel VBA UBOUND-funktionen för att kopiera data

Antag att du har en lista med data i ett excelblad som det nedanstående.

Dessa data kommer att uppdateras dagligen och du måste kopiera dessa data till det nya arket varje gång de uppdateras. Att uppdatera detta manuellt kommer att ta mycket tid på din arbetsplats, men jag visar dig en enkel makrokod för att automatisera detta.

Steg 1: Skapa ett makro och definiera matrisvariabeln.

Koda:

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

Steg 2: Aktivera nu databladet genom att hänvisa till dess namn.

Koda:

Sub Ubound_Example2 () Dim DataRange () Som Variant Sheets ("Data Sheet"). Aktivera End Sub

Steg 3: Tilldela nu dataområdet till den definierade variabeln med hjälp av nedanstående kod.

Koda:

Sub Ubound_Example2 () Dim DataRange () Som Variant Sheets ("Data Sheet"). Aktivera 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 () Som Variant Sheets ("Data Sheet"). Aktivera DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Arbetsblad. Lägg till Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Saker att komma ihåg

  • UBOUND returnerar matrisens maximala längd.
  • Matrisen börjar från 0, inte från 1.
  • Om du vill ha det lägre värdet i matrisen måste du använda VBA LBOUND.
  • Om matrisen har mer än en dimension måste du också ange måttnummer.

Intressanta artiklar...