Excel VBA UBound-funksjon
Hvor ofte opplever du en situasjon der du trenger å nevne maksimal lengde eller øvre grense for en matrisedata som arbeider med Excel? De fleste ganger, ikke sant? Og hvordan finner du det samme? Kanskje manuelt mesteparten av tiden. Du kan imidlertid automatisere den og få maksimal lengde eller øvre grense for en gruppe ved hjelp av en VBA-funksjon som heter UBound.
Dessuten har den den vakreste måten å sløyfe gjennom. Hvis du bruker en For-loop i matrisen din, ville du definitivt sløyfe alle elementene i matrisen. I så fall vil det være en kjedelig jobb å finne ut øvre grenser manuelt og nevne den i løkka. Det vil også redusere kodeligheten. Derfor er VBA UBound-funksjon praktisk i slike scenarier.
UBound står for øvre grense og det gir øvre grense eller maksimal lengde på matrisen i Excel VBA.
Formel for UBound-funksjon i Excel VBA
Excel VBA UBound-funksjon har følgende syntaks.
UBound (Arrayname (, dimensjon))
Hvor,
- Arrayname: Navn på matrisen du har definert. Dette argumentet er et obligatorisk / påkrevd argument.
- Dimensjon: Valgfritt argument som spesifiserer dimensjonen til en matrise. Enten det er en endimensjonal, todimensjonal eller flerdimensjonal matrise. Som standard vil den anta endimensjonal matrise hvis ikke spesifisert.
Siden denne funksjonen bare har to argumenter, blir det mye lettere å huske syntaks for denne funksjonen.
Hvordan bruke Excel VBA UBound-funksjon?
Vi lærer hvordan du bruker en VBA UBound-funksjon med få eksempler i Excel.
Du kan laste ned denne VBA UBound Excel-malen her - VBA UBound Excel-malEksempel 1 - VBA UBound med endimensjonal matrise
Følg trinnene nedenfor for å bruke UBound-funksjon i VBA.
Trinn 1: I fanen Developer klikker du på Visual Basic for å åpne VB Editor.
Trinn 2: Klikk på Sett inn og velg kategorien Modul for å legge til en ny tom modul til VBE.
Trinn 3: I VBE, begynn å skrive makroen og definere variabelnavnet.
Kode:
Sub Onedm_Ubound () Dim IndiaCity (4) Som String End Sub
Her er variabelen IndiaCity definert med 5 elementer. Variabeltypen er en streng.
Merk: Array starter fra 0 (Null). Derfor vil denne matrisen bestå av fem elementer.Trinn 4: Tilordne verdier til matriseelementene.
Kode:
Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "Slutt sub
Her har det null elementet en verdi tilordnet som "Mumbai", det første elementet har en verdi tilordnet som "Bengaluru" og så videre.
Trinn 5: Bruk UBound-funksjonen sammen med MsgBox for å få øvre grense for matrisen.
Kode:
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 for Array er: "& UBound (IndiaCity) End Sub
Trinn 6: Kjør denne koden ved å trykke F5 direkte eller manuelt slå Run-knappen på øvre venstre panel. Det vises en meldingsboks med meldingen “ Øvre grense for matrisen er: 4 ”.
Vær oppmerksom på at UBound-funksjonen ikke finner ut den øvre grensen fra elementene i Array. Den finner bare ut det maksimale antall elementer i matrisen.
Eksempel 2 - VBA UBound med todimensjonal matrise
Følg trinnene nedenfor for å bruke UBound-funksjon i VBA.
Trinn 1: Definer en variabel som kan inneholde todimensjonale data.
Kode:
Sub TwoDm_UBound () Dim Array_Test (0 til 6, 1 til 8) Som String End Sub
Trinn 2: Definer en ny variabel Melding og bruk den under MsgBox. Denne variabelen vil hjelpe oss med å skrive ut de øvre grensene for begge dimensjoner samtidig.
Kode:
Sub TwoDm_UBound () Dim Array_Test (0 til 6, 1 til 8) Som String Dim Message MsgBox Message End Sub
Trinn 3: Prøv nå følgende påstander som lar systemet skrive ut begge dimensjonene i matrisen under den samme meldingsboksen.
Kode:
Sub TwoDm_UBound () Dim Array_Test (0 til 6, 1 til 8) Som String Dim Message Message = "Upper bound for first dimension is:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "Upper bound for second dimension is : "& UBound (Array_Test, 2) & vbCrLf MsgBox Message End Sub
De to utsagnene som er nevnt i koden ovenfor, lar systemet skrive ut begge dimensjoner i den samme meldingsboksen. Den første setningen lagrer verdien for den øvre grensen for den første dimensjonen i variabelen Melding og avslutter linjen (vbCrLf). Den andre setningen legger til den første verdien som er tilordnet variabelen Melding og kombinerer den med øvre grense av andre dimensjoner med en popup-melding.
Ettersom vbCrLf brukes i begge utsagnene, fungerer det som newline / vognretur her i begge uttalelsene.
Trinn 4: Kjør koden ved å trykke på F5 eller Run-knappen og se utdataene.
På lignende linjer kan vi gå til flere dimensjoner og se øvre grense for hver av dem.
Eksempel # 3 - UBound-funksjon for å oppdatere dataene i arket automatisk
Anta at du har et datasett som vist på skjermbildet nedenfor.
Disse dataene blir oppdatert, og du må kopiere de oppdaterte dataene nå og da. Nå er det virkelig en kjedelig jobb å alltid se etter dataoppdateringene og deretter kopiere den til det nye arket. Det bruker mye tid også. Kan vi prøve å automatisere den med UBound-funksjon i VBA? La oss se.
Følg trinnene nedenfor for å oppdatere dataene i arket automatisk ved hjelp av VBA UBound-funksjon:
Trinn 1: Definer en variabel ved å lage en makro.
Kode:
Sub Ex3_UBound () Dim DataUpdate () Som Variant End Sub
Trinn 2: Aktiver arbeidsarket som inneholder dataene dine. I dette tilfellet er arket navnet " Data ".
Kode:
Sub Ex3_UBound () Dim DataUpdate () Som varianter ("Data"). Aktiver Slutt Sub
Trinn 3: Tildel området til variabelen vi nettopp opprettet. Vi bruker aktivt ark for dette formålet.
Kode:
Sub Ex3_UBound () Dim DataUpdate () Som varianter ("Data"). Aktiver DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) End Sub
Trinn 4: Legg til et nytt regneark til Excel, der de oppdaterte dataene kan kopieres og limes inn.
Kode:
Sub Ex3_UBound () Dim DataUpdate () Som variantark ("Data"). Aktiver DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Arbeidsark.
Trinn 5: Bruk nå kodelinjen nedenfor som gjør at dataene fra “Data” -arket kan kopieres og limes inn i et nyopprettet excelark automatisk.
Kode:
Sub Ex3_UBound () Dim DataUpdate () Som variantark ("Data"). Aktiver DataUpdate = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Arbeidsark.Tillegg område (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub
Den ovennevnte koden vil utligne cellene fra "Data" -arket opp til øvre grense, som kan oppnås ved bruk av UBound-funksjon og tildeler området variabelen DataUpdate.
Trinn 6: Kjør koden ved å trykke på F5 eller Run-knappen og se utdataene.
Som du ser, er det et nytt ark lagt til i Excel arbeidsbok hvor alle dataene fra “Data” -arket blir kopiert automatisk.
Dette er en dynamisk kode. Det jeg mener å si det dynamisk er, selv om jeg legger til kolonnevis og radmessig, kopieres det automatisk til et nytt ark.
Trinn 7: La oss legge til noen rader og kolonner i dataene og se om de faktisk fungerer.
Trinn 8: Trykk på Kjør-knappen igjen etter at databladet er oppdatert og se magien.
Hvis du kan se, blir et nytt ark lagt til (farget) og en ny kolonne med alder sammen med to nye rader lagt til i arket. Det betyr, uansett hva vi oppdaterer i masterfilen (Data), vil denne koden automatisk kopiere alt fra det og lime det inn i et nytt ark.
Ting å huske
- UBound gir øvre grense / maksimale lengde på en matrise og ikke øvre grense fra datapunktene som er tilstede i en matrise.
- Arrayen starter alltid fra den 0. posisjonen som parallell til de fleste programmeringsspråk som C, C ++, Python.
- Hvis matrisen din er flerdimensjonal, må du også spesifisere dimensjonsargumentet som tar numeriske hele verdier som 1, 2, 3 osv. 1 står for One-Dimension, 2 for Two-Dimensional og så videre.
Anbefalte artikler
Dette er en guide til VBA UBound-funksjon. Her diskuterer vi hvordan du bruker Excel VBA UBound-funksjon sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -
- VBA-delt funksjon med eksempler
- Excel store bokstavfunksjon
- VBA-kamp
- CEILING-funksjon i Excel
- Hvordan bruke VBA-regneark?