VBA UBOUND

UBOUND of ook bekend als Upper Bound, deze functie in VBA wordt gebruikt met de tegenovergestelde functie die LBOUND of ook 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 updaten, maar als je dit allemaal doet, dan is het vandaag het einde, 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 hebben we bij het coderen nodig om de maximale lengte van de array te vinden. Bijvoorbeeld, MyResult (24) middelen arraynaam MyResult bevat 25 waarden omdat matrix begint vanaf nul, niet voor. Dus 24 betekent +1 dwz totaal 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 de Excel VBA UBOUND-functie vertegenwoordigt de bovengrens van de array-grootte.

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 negeert, wordt de eerste dimensie standaard 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.

U kunt deze VBA UBound-functiesjabloon hier downloaden - VBA UBound-functiesjabloon

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: Als we nu een berichtvenster met UBOUND-functie gebruiken, 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 het bovengrensnummer van de array zal in het berichtvenster worden 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 uw werkplek behoorlijk wat tijd, maar ik zal u 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 

Stap 4: Voeg nu een nieuw werkblad toe aan de werkmap.

Code:

 Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Activeer DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add End Sub 

Stap 5: Voeg nu de gegevens toe aan het nieuw toegevoegde blad met behulp van de Excel VBA UBOUND-functie in de vorm 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)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange End Sub 

De bovenstaande code verschuift de cellen met de maximale lengte die wordt geretourneerd door de UBOUND-functie en dit bereik is gelijk aan de waarde van de arraynaam " DataRange "

Stap 6: Voer nu deze code uit, het zal de waarde in het nieuwe blad plakken.

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").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 Erase DataRange End Sub 

Things to Remember

  • UBOUND returns the maximum length of the array.
  • The array starts from 0, not from 1.
  • If you want the lower value of the array then you need to use VBA LBOUND.
  • If the array has more than one dimension then you need to specify the dimension number as well.