VBA UBound - De Excel VBA UBound-functie gebruiken (voorbeelden)

Inhoudsopgave:

Anonim

Excel VBA UBound-functie

Hoe vaak komt u met een situatie waarin u de maximale lengte of bovengrens moet vermelden van een matrixgegevens die met Excel werken? Meestal toch? En hoe vind je hetzelfde? Misschien meestal handmatig. U kunt het echter automatiseren en de maximale lengte of bovengrens van een array krijgen met behulp van een VBA-functie genaamd UBound.

Bovendien heeft het de mooiste manier om door te lussen. Als je bijvoorbeeld een For-lus in je array gebruikt, wilde je zeker alle elementen van de array herhalen. In dat geval zou het een vervelende klus zijn om handmatig de bovengrens te achterhalen en in de lus te vermelden. Het zal ook de algemeenheid van de code verminderen. Daarom is de VBA UBound-functie handig in dergelijke scenario's.

UBound staat voor bovengrens en geeft bovengrens of maximale lengte van de array in Excel VBA.

Formule voor UBound-functie in Excel VBA

Excel VBA UBound-functie heeft de volgende syntaxis.

 UBound (Arrayname (, Dimension)) 

Waar,

  • Arrayname: naam van de array die u hebt gedefinieerd. Dit argument is een verplicht / verplicht argument.
  • Dimensie: optioneel argument dat de dimensie van een array aangeeft. Of het nu gaat om een ​​eendimensionale, tweedimensionale of multidimensionale reeks. Standaard wordt ervan uitgegaan dat de eendimensionale array niet is opgegeven.

Omdat deze functie slechts twee argumenten heeft, wordt het veel gemakkelijker om de syntaxis van deze functie te onthouden.

Hoe de Excel VBA UBound-functie te gebruiken?

We zullen leren hoe een VBA UBound-functie te gebruiken met enkele voorbeelden in Excel.

U kunt deze VBA UBound Excel-sjabloon hier downloaden - VBA UBound Excel-sjabloon

Voorbeeld # 1 - VBA UBound met eendimensionale array

Volg de onderstaande stappen om de UBound-functie in VBA te gebruiken.

Stap 1: Klik op het tabblad Ontwikkelaars op Visual Basic om de VB-editor te openen.

Stap 2: Klik op Invoegen en selecteer het tabblad Module om een ​​nieuwe lege module aan VBE toe te voegen.

Stap 3: Begin in de VBE met het schrijven van de macro en definieer de variabelenaam.

Code:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String End Sub 

Hier wordt variabele IndiaCity gedefinieerd met 5 elementen. Het variabele type is een string.

Opmerking: Array begint vanaf 0 (nul). Daarom zal deze array uit 5 elementen bestaan.

Stap 4: Wijs waarden toe aan de array-elementen.

Code:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "Einde Sub 

Hier heeft het nullenelement een waarde toegewezen als "Mumbai", het Eerste element heeft een waarde toegewezen als "Bengaluru" enzovoort.

Stap 5: Gebruik de UBound-functie samen met MsgBox om de bovengrens voor de array te krijgen.

Code:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "MsgBox" Upper Bound voor de array is: "& UBound (IndiaCity) End Sub 

Stap 6: Voer deze code uit door direct op F5 te drukken of door handmatig op de knop Run in het paneel linksboven te drukken. Er verschijnt een berichtvenster met het bericht " Upper Bound for the Array is: 4 ".

Houd er rekening mee dat de UBound-functie de bovengrens van de elementen van Array niet ontdekt. Het ontdekt alleen het maximale aantal elementen dat de array bevat.

Voorbeeld # 2 - VBA UBound met tweedimensionale array

Volg de onderstaande stappen om de UBound-functie in VBA te gebruiken.

Stap 1: Definieer een variabele die tweedimensionale gegevens kan bevatten.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 tot 6, 1 tot 8) Als tekenreeks einde Sub 

Stap 2: Definieer een nieuw variabel bericht en gebruik het onder MsgBox. Met deze variabele kunnen we de bovengrenzen van beide dimensies tegelijkertijd afdrukken.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 tot 6, 1 tot 8) Als tekenreeks Dim bericht MsgBox Message End Sub 

Stap 3: Probeer nu de volgende instructies waarmee het systeem beide dimensies van de array onder hetzelfde berichtvenster kan afdrukken.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 tot 6, 1 tot 8) As String Dim Message Message = "Bovengrens voor eerste dimensie is:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "Bovengrens voor tweede dimensie is : "& UBound (Array_Test, 2) & vbCrLf MsgBox Message End Sub 

Met de twee verklaringen in de bovenstaande code kan het systeem beide dimensies in hetzelfde berichtenvak afdrukken. De eerste instructie slaat de waarde van de bovengrens voor de eerste dimensie op in variabele Message en eindigt de regel (vbCrLf). De tweede instructie voegt de eerste waarde toe die is toegewezen aan de variabele Message en combineert deze met de bovengrens van tweede dimensies met een pop-upbericht.

Omdat de vbCrLf in beide instructies wordt gebruikt, werkt deze hier in beide instructies als newline / return.

Stap 4: Voer de code uit door op F5 of de knop Run te drukken en de uitvoer te bekijken.

Op vergelijkbare lijnen kunnen we tot meerdere dimensies gaan en de bovengrens voor elk van hen zien.

Voorbeeld # 3 - UBound-functie om de gegevens in blad automatisch bij te werken

Stel dat u een gegevensset hebt zoals weergegeven in de onderstaande schermafbeelding.

Deze gegevens worden bijgewerkt en u moet de bijgewerkte gegevens zo nu en dan kopiëren. Nu is het echt een vervelende klus om altijd te controleren op de gegevensupdates en deze vervolgens naar het nieuwe blad te kopiëren. Het kost ook veel tijd. Kunnen we proberen het te automatiseren met de UBound-functie in VBA? Laten we eens kijken.

Volg de onderstaande stappen om de gegevens op het blad automatisch bij te werken met de VBA UBound-functie:

Stap 1: Definieer een variabele door een macro te maken.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Variant End Sub 

Stap 2: Activeer het werkblad dat uw gegevens bevat. In dit geval is de bladnaam " Gegevens ".

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Variant Sheets ("Data"). Activeer End Sub 

Stap 3: Wijs het bereik toe aan de variabele die we zojuist hebben gemaakt. We zullen hiervoor het assortiment geactiveerde platen gebruiken.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Variant Sheets ("Data"). Activeer DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub 

Stap 4: Voeg een nieuw werkblad toe aan uw Excel, waar de bijgewerkte gegevens kunnen worden gekopieerd en geplakt.

Code:

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

Stap 5: Gebruik nu de onderstaande coderegel waarmee de gegevens van het blad "Gegevens" automatisch kunnen worden gekopieerd en geplakt in een nieuw gemaakt Excel-blad.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Variant Sheets ("Data"). Activeer DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub 

De bovenstaande code zal de cellen van het blad "Gegevens" tot bovengrens verschuiven, wat kan worden verkregen door de gebruikte UBound-functie en wijst het bereik toe aan de variabele DataUpdate.

Stap 6: Voer de code uit door op F5 of de knop Run te drukken en de uitvoer te bekijken.

Zoals u kunt zien, is er een nieuw blad toegevoegd in de Excel-werkmap waar alle gegevens van het blad "Gegevens" automatisch worden gekopieerd.

Dit is een dynamische code. Wat ik bedoel te zeggen is dat het dynamisch is, hoewel ik kolom- en rijsgewijs toevoeg, wordt het automatisch naar een nieuw blad gekopieerd.

Stap 7: Laten we enkele rijen en kolommen aan de gegevens toevoegen en kijken of het echt werkt.

Stap 8: Druk nogmaals op de knop Uitvoeren nadat het gegevensblad is bijgewerkt en zie de magie.

Als u kunt zien, wordt een nieuw blad toegevoegd (gekleurd) en een nieuwe kolom met leeftijd samen met twee nieuwe rijen wordt ook toegevoegd aan dat blad. Het betekent dat, wat we ook bijwerken in het hoofdbestand (Gegevens), deze code automatisch alles daaruit kopieert en in een nieuw blad plakt.

Dingen om te onthouden

  • UBound geeft de bovengrens / maximale lengte van een array en niet de bovengrens van de gegevenspunten in een array.
  • De array begint altijd vanaf de 0e positie als parallel aan de meeste programmeertalen zoals C, C ++, Python.
  • Als uw array multidimensionaal is, moet u ook het dimensieargument opgeven dat numerieke hele waarden als 1, 2, 3, enz. Gebruikt. 1 staat voor One-Dimension, 2 voor Two-Dimensional enzovoort.

Aanbevolen artikelen

Dit is een handleiding voor de VBA UBound-functie. Hier bespreken we hoe u Excel VBA UBound-functie kunt gebruiken, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA-splitfunctie met voorbeelden
  2. Excel hoofdfunctie
  3. VBA-wedstrijd
  4. PLAFONDfunctie in Excel
  5. Hoe VBA-werkbladen gebruiken?