VBA UBound-funksjon - Hvordan bruker jeg UBound i Excel VBA?

Innholdsfortegnelse

UBOUND eller også kjent som Upper Bound, denne funksjonen i VBA brukes med sin motsatte funksjon som LBOUND eller også kjent som Lower Bound-funksjon, bruken av denne funksjonen er å definere lengden på en matrise i en kode og som navnet antyder UBOUND brukes til å definere den øvre grensen for matrisen.

VBA UBOUND-funksjon

Hvordan forteller du den maksimale lengden på matrisen i Excel? Ja, vi kan manuelt se og oppdatere den maksimale lengden på matrisen, men hvis du gjør alt dette mens det er slutt på det i dag, fordi vi har en funksjon kalt UBOUND for å bestemme maksimal lengde på matrisen. Følg denne artikkelen for å ha mer kunnskap om UBOUND-funksjonen i Excel VBA.

UBOUND står for Upper Bound. Ofte når vi koder, kan det hende vi trenger å finne den maksimale lengden på matrisen. For eksempel, MyResult (24) midler rekke navn MyResult har 25 verdier til det fordi array starter fra null, ikke fra en. Så 24 betyr +1, dvs. totalt 25 verdier.

Her er den maksimale lengden på matrisen 24. I stedet for å levere matriselengden manuelt, kan vi bruke den innebygde funksjonen UBOUND for å få maksimal lengde på matrisen.

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

Så Excel VBA UBOUND-funksjon representerer den øvre grensen for matrisestørrelse.

Hvordan bruker jeg VBA UBound-funksjonen i Excel?

Formelen til VBA UBOUND er veldig enkel fordi den bare har to parametere.

UBound (Arrayname (, Dimension))
  • Array Name: Dette er navnet på arraynavnet vi har definert. I eksempelet ovenfor er MyResult matrisenavnet.
  • (Dimensjon): Hvis matrisen har mer enn én dimensjon, må vi spesifisere dimensjonen til matrisen. Hvis du ignorerer den, vil den behandle den første dimensjonen som standard.

Excel VBA UBOUND-funksjonen er veldig nyttig for å bestemme lengden på løkkene mens du kjører løkkene.

Eksempler på UBOUND-funksjon i Excel VBA

Nedenfor er de praktiske eksemplene på VBA UBound-funksjonen.

Eksempel 1

For å starte saksgangen, la meg skrive den enkle koden. Følg trinnene nedenfor for å bruke VBA UBOUND-funksjonen.

Trinn 1: Start Excel-makroen og definer variabelnavnet.

Kode:

Sub Ubound_Example1 () Dim ArrayLength (0 To 4) As String

Trinn 2: Jeg vil tilordne verdier til dette matrisenavnet.

Kode:

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

Trinn 3: Nå, ved hjelp av en meldingsboks med UBOUND-funksjonen, ser vi maksimal lengde på matrisen.

Kode:

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 is:" & UBound (ArrayLength) End Sub

Trinn 4: Kjør denne koden ved å trykke på F5-tasten, eller du kan også kjøre koden manuelt, som vist på skjermbildet nedenfor.

Meldingsboksen viser at det øvre grensenummeret til matrisen vil vises i meldingsboksen.

Som dette ved hjelp av Excel VBA UBOUND-funksjonen, kan vi få den øvre grensen til en matrise.

Eksempel 2 - Bruke Excel VBA UBOUND-funksjonen til å kopiere dataene

Anta at du har en liste over data i ett Excel-ark som det nedenfor.

Disse dataene oppdateres daglig, og du må kopiere disse dataene til det nye arket hver gang de oppdateres. Å oppdatere dette manuelt vil ta lang tid på arbeidsplassen din, men jeg vil vise deg en enkel makrokode for å automatisere dette.

Trinn 1: Opprett en makro og definer arrayvariabelen.

Kode:

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

Trinn 2: Aktiver nå databladet ved å referere til navnet.

Kode:

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

Trinn 3: Nå tilordne dataområdet til den definerte variabelen ved hjelp av koden nedenfor.

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"). Aktiver DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Arbeidsark. Legg til Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Ting å huske

  • UBOUND returnerer maksimal lengde på matrisen.
  • Matrisen starter fra 0, ikke fra 1.
  • Hvis du vil ha den lavere verdien av matrisen, må du bruke VBA LBOUND.
  • Hvis matrisen har mer enn én dimensjon, må du også spesifisere dimensjonsnummeret.

Interessante artikler...