VBA UBound-functie - Hoe UBound in Excel VBA te gebruiken?

Inhoudsopgave

UBOUND of ook wel bekend als Upper Bound, deze functie in VBA wordt gebruikt met de tegenovergestelde functie die LBOUND of ook wel bekend als Lower Bound functie, het gebruik van deze functie is om de lengte van een array in een code te definiëren en zoals de naam suggereert UBOUND wordt gebruikt om de bovengrens van de array te definiëren.

VBA UBOUND-functie

Hoe bepaal je de maximale lengte van de array in Excel? Ja, we kunnen de maximale lengte van de array handmatig zien en bijwerken, maar als je dit al die tijd doet, is het vandaag afgelopen, want we hebben een functie genaamd UBOUND om de maximale lengte van de array te bepalen. Volg dit artikel om meer kennis te hebben van de UBOUND-functie in Excel VBA.

UBOUND staat voor Upper Bound. Vaak is het bij het coderen nodig om de maximale lengte van de array te vinden. Bijvoorbeeld, MyResult (24) middelen arraynaam MyResult bevat 25 waarden omdat de array begint vanaf nul, niet voor. Dus 24 betekent +1, dwz een totaal van 25 waarden.

Hier is de maximale lengte van de array 24. In plaats van de array-lengte handmatig op te geven, kunnen we de ingebouwde functie UBOUND gebruiken om de maximale lengte van de array te krijgen.

De code is: UBOUND (MyResult), dwz UBOUND (24)

Dus Excel VBA UBOUND-functie vertegenwoordigt de bovengrens van de matrixgrootte.

Hoe gebruik je de VBA UBound-functie in Excel?

De formule van VBA UBOUND is heel eenvoudig omdat het maar twee parameters heeft.

UBound (Arrayname (, Dimension))
  • Array-naam: dit is de naam van de array-naam die we hebben gedefinieerd. In het bovenstaande voorbeeld is MyResult bijvoorbeeld de arraynaam.
  • (Dimensie): als de array meer dan één dimensie heeft, moeten we de dimensie van de array specificeren. Als u deze negeert, wordt standaard de eerste dimensie behandeld.

De Excel VBA UBOUND-functie is erg handig bij het bepalen van de lengte van de lussen tijdens het uitvoeren van de lussen.

Voorbeelden van UBOUND-functie in Excel VBA

Hieronder staan ​​de praktische voorbeelden van de VBA UBound-functie.

Voorbeeld 1

Laat me de eenvoudige code schrijven om de procedure te starten. Volg de onderstaande stappen om de VBA UBOUND-functie toe te passen.

Stap 1: Start de Excel-macro en definieer de variabelenaam.

Code:

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

Stap 2: Ik zal waarden toewijzen aan deze arraynaam.

Code:

Sub Ubound_Example1 () Dim ArrayLength (0 tot 4) As String ArrayLength (0) = "Hallo" ArrayLength (1) = "Vriend" ArrayLength (2) = "Welkom" ArrayLength (3) = "tot" ArrayLength (4) = "VBA Class" End Sub

Stap 3: Nu, met behulp van een berichtvenster met de UBOUND-functie, zullen we de maximale lengte van de array zien.

Code:

Sub Ubound_Example1 () Dim ArrayLength (0 tot 4) As String ArrayLength (0) = "Hallo" ArrayLength (1) = "Vriend" ArrayLength (2) = "Welkom" ArrayLength (3) = "tot" ArrayLength (4) = "VBA Class" MsgBox "Upper Bound Length is:" & UBound (ArrayLength) End Sub

Stap 4: Voer deze code uit door op de F5-toets te drukken, of u kunt de code ook handmatig uitvoeren, zoals weergegeven in de onderstaande schermafbeelding.

Het berichtvenster toont u dat het bovengrensnummer van de array in het berichtvenster wordt weergegeven.

Op deze manier kunnen we met de Excel VBA UBOUND-functie de bovengrenslengte van een array krijgen.

Voorbeeld # 2 - De Excel VBA UBOUND-functie gebruiken om de gegevens te kopiëren

Stel dat u een lijst met gegevens in één Excel-blad heeft, zoals hieronder.

Deze gegevens worden dagelijks bijgewerkt en u moet deze gegevens elke keer dat deze wordt bijgewerkt naar het nieuwe blad kopiëren. Het handmatig bijwerken hiervan kost op je werkplek behoorlijk wat tijd, maar ik zal je een eenvoudige macrocode laten zien om dit te automatiseren.

Stap 1: Maak een macro en definieer de matrixvariabele.

Code:

Sub Ubound_Example2 () Dim DataRange () Als variant End Sub

Stap 2: Activeer nu het gegevensblad door naar de naam te verwijzen.

Code:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activeer End Sub

Stap 3: Wijs nu het gegevensbereik toe aan de gedefinieerde variabele met behulp van de onderstaande code.

Code:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activeer 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"). Activeer 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

Dingen om te onthouden

  • UBOUND geeft de maximale lengte van de array terug.
  • De array begint bij 0, niet bij 1.
  • Als u de lagere waarde van de array wilt, moet u VBA LBOUND gebruiken.
  • Als de array meer dan één dimensie heeft, moet u ook het dimensienummer opgeven.

Interessante artikelen...