VBA UBound-funktion - Hvordan bruges UBound i Excel VBA?

Indholdsfortegnelse

UBOUND eller også kendt som Upper Bound, denne funktion i VBA bruges med sin modsatte funktion som LBOUND eller også kendt som Lower Bound-funktion, brugen af ​​denne funktion er at definere længden af ​​en matrix i en kode og som navnet antyder UBOUND bruges til at definere den øvre grænse for arrayet.

VBA UBOUND-funktion

Hvordan fortæller du den maksimale længde af arrayet i Excel? Ja, vi kan manuelt se og opdatere den maksimale længde af arrayet, men hvis du laver det hele tiden, er det i dag slutningen af ​​det, fordi vi har en funktion kaldet UBOUND til at bestemme den maksimale længde af arrayet. Følg denne artikel for at få mere viden om UBOUND-funktionen i Excel VBA.

UBOUND står for Upper Bound. Ofte ved kodning skal vi muligvis finde den maksimale længde på arrayet. For eksempel betyder MyResult (24) array-navn MyResult indeholder 25 værdier, fordi arrayet starter fra nul og ikke fra en. Så 24 betyder +1, dvs. i alt 25 værdier.

Her er arrayens maksimale længde 24. I stedet for at levere array-længden manuelt kan vi bruge den indbyggede funktion UBOUND til at få den maksimale længde på arrayet.

Koden er: UBOUND (MyResult), dvs. UBOUND (24)

Så Excel VBA UBOUND-funktion repræsenterer den øvre grænse for arraystørrelse.

Hvordan bruges VBA UBound-funktionen i Excel?

Formlen for VBA UBOUND er meget enkel, fordi den kun har to parametre.

UBound (Arrayname (, Dimension))
  • Array Name: Dette er navnet på det array-navn, vi har defineret. For eksempel er MyResult i ovenstående eksempel arraynavnet .
  • (Dimension): Hvis arrayet har mere end en dimension, skal vi specificere arrayets dimension. Hvis du ignorerer det, behandles den første dimension som standard.

Excel VBA UBOUND-funktionen er meget nyttig til at bestemme løkkernes længde, mens du kører løkkerne.

Eksempler på UBOUND-funktion i Excel VBA

Nedenfor er de praktiske eksempler på VBA UBound-funktionen.

Eksempel nr. 1

Lad mig skrive den enkle kode for at starte proceduren. Følg nedenstående trin for at anvende VBA UBOUND-funktionen.

Trin 1: Start excel-makroen og definer variabelnavnet.

Kode:

Under ubundet_eksempel1 () Dim ArrayLength (0 til 4) som streng

Trin 2: Jeg tildeler værdier til dette arraynavn.

Kode:

Under ubundet_eksempel1 () Dim ArrayLength (0 til 4) Som streng ArrayLength (0) = "Hej" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" End Sub

Trin 3: Nu, ved hjælp af en meddelelsesboks med UBOUND-funktionen, ser vi den maksimale længde af arrayet.

Kode:

Under ubundet_eksempel1 () Dim ArrayLength (0 til 4) Som streng ArrayLength (0) = "Hej" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Upper Bound Length er:" & UBound (ArrayLength) End Sub

Trin 4: Kør denne kode ved at trykke på F5-tasten, eller du kan også køre koden manuelt, som vist i nedenstående skærmbillede.

Meddelelsesboksen viser dig, at det øverste grænse for arrayet vises i meddelelsesboksen.

Som dette ved hjælp af Excel VBA UBOUND-funktionen kan vi få den øvre grænse til en matrix.

Eksempel # 2 - Brug af Excel VBA UBOUND-funktionen til at kopiere dataene

Antag, at du har en liste over data i et excel-ark som det nedenstående.

Disse data opdateres dagligt, og du skal kopiere disse data til det nye ark, hver gang de opdateres. Opdatering af dette manuelt vil tage lang tid på din arbejdsplads, men jeg vil vise dig en simpel makro kode for at automatisere dette.

Trin 1: Opret en makro, og definer arrayvariablen.

Kode:

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

Trin 2: Aktiver nu databladet ved at henvise til dets navn.

Kode:

Sub Ubound_Example2 () Dim DataRange () Som Variant Sheets ("Data Sheet"). Aktivér End Sub

Trin 3: Tildel nu dataområdet til den definerede variabel ved hjælp af nedenstående kode.

Kode:

Sub Ubound_Example2 () Dim DataRange () Som Variant Sheets ("Data Sheet"). Aktiver 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"). Aktivér DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Ting at huske

  • UBOUND returnerer den maksimale længde af arrayet.
  • Arrayet starter fra 0, ikke fra 1.
  • Hvis du vil have den lavere værdi af arrayet, skal du bruge VBA LBOUND.
  • Hvis arrayet har mere end en dimension, skal du også angive dimensionen.

Interessante artikler...