VBA UBound - Verwendung der Excel VBA UBound-Funktion (Beispiele)

Inhaltsverzeichnis:

Anonim

Excel VBA UBound-Funktion

Wie oft tauchen Situationen auf, in denen die maximale Länge oder Obergrenze von Array-Daten, die mit Excel arbeiten, angegeben werden muss? Meistens, richtig? Und wie findest du das selbe? Möglicherweise die meiste Zeit manuell. Sie können es jedoch mit einer VBA-Funktion namens UBound automatisieren und die maximale Länge oder Obergrenze eines Arrays ermitteln.

Außerdem hat es die schönste Art, sich durchzuschleifen. Wenn Sie in Ihrem Array eine For-Schleife verwenden, möchten Sie auf jeden Fall alle Elemente des Arrays in einer Schleife wiedergeben. In diesem Fall wäre es mühsam, die Obergrenze manuell zu ermitteln und in der Schleife zu erwähnen. Dies verringert auch die Allgemeinheit des Codes. Daher ist die VBA-UBound-Funktion in solchen Szenarien nützlich.

UBound steht für Upper Bound und gibt die obere Grenze oder die maximale Länge des Arrays in Excel VBA an.

Formel für die UBound-Funktion in Excel VBA

Die Excel VBA UBound-Funktion hat die folgende Syntax.

 UBound (Arrayname (, Dimension)) 

Wo,

  • Arrayname: Name des von Ihnen definierten Arrays. Dieses Argument ist ein obligatorisches / erforderliches Argument.
  • Dimension: Optionales Argument, das die Dimension eines Arrays angibt. Ob es sich um ein eindimensionales, zweidimensionales oder mehrdimensionales Array handelt. Standardmäßig wird das eindimensionale Array verwendet, wenn es nicht angegeben ist.

Da diese Funktion nur zwei Argumente hat, ist es viel einfacher, sich die Syntax dieser Funktion zu merken.

Wie verwende ich die Excel VBA UBound-Funktion?

Wir werden anhand einiger Beispiele in Excel lernen, wie man eine VBA-UBound-Funktion verwendet.

Sie können diese VBA UBound Excel-Vorlage hier herunterladen - VBA UBound Excel-Vorlage

Beispiel # 1 - VBA UBound mit eindimensionalem Array

Führen Sie die folgenden Schritte aus, um die UBound-Funktion in VBA zu verwenden.

Schritt 1: Klicken Sie auf der Registerkarte Entwickler auf Visual Basic, um den VB-Editor zu öffnen.

Schritt 2: Klicken Sie auf Einfügen und wählen Sie die Registerkarte Modul, um ein neues leeres Modul zu VBE hinzuzufügen.

Schritt 3: Beginnen Sie in der VBE mit dem Schreiben des Makros und definieren Sie den Variablennamen.

Code:

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

Hier wird die Variable IndiaCity mit 5 Elementen definiert. Der Variablentyp ist eine Zeichenfolge.

Hinweis: Das Array beginnt bei 0 (Null). Daher besteht dieses Array aus 5 Elementen.

Schritt 4: Weisen Sie den Array-Elementen Werte zu.

Code:

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

Hier wird dem nullten Element ein Wert als "Mumbai" zugewiesen, dem ersten Element wird ein Wert als "Bengaluru" zugewiesen und so weiter.

Schritt 5: Verwenden Sie die UBound-Funktion zusammen mit MsgBox, um die obere Grenze für das Array abzurufen.

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" Die obere Grenze für das Array lautet: "& UBound (IndiaCity) End Sub 

Schritt 6: Führen Sie diesen Code aus, indem Sie F5 direkt oder manuell auf die Schaltfläche Ausführen in der oberen linken Leiste drücken. Ein Meldungsfeld mit der Meldung " Obergrenze für das Array ist: 4 " wird eingeblendet .

Bitte beachten Sie, dass die UBound-Funktion die Obergrenze nicht aus den Elementen von Array ermittelt. Es wird nur die maximale Anzahl von Elementen ermittelt, die das Array enthält.

Beispiel # 2 - VBA UBound mit zweidimensionalem Array

Führen Sie die folgenden Schritte aus, um die UBound-Funktion in VBA zu verwenden.

Schritt 1: Definieren Sie eine Variable, die zweidimensionale Daten enthalten kann.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 bis 6, 1 bis 8) As String End Sub 

Schritt 2: Definieren Sie eine neue variable Nachricht und verwenden Sie sie unter MsgBox. Diese Variable hilft uns, die oberen Grenzen beider Dimensionen gleichzeitig zu drucken.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 bis 6, 1 bis 8) As String Dim Message MsgBox Message End Sub 

Schritt 3: Versuchen Sie nun die folgenden Anweisungen, mit denen das System beide Dimensionen des Arrays unter demselben Meldungsfeld drucken kann.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 bis 6, 1 bis 8) As String Dim Message Message = "Obergrenze für erste Dimension ist:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "Obergrenze für zweite Dimension ist : "& UBound (Array_Test, 2) & vbCrLf MsgBox Message End Sub 

Die beiden im obigen Code genannten Anweisungen ermöglichen es dem System, beide Dimensionen in demselben Meldungsfeld zu drucken. Die erste Anweisung speichert den Wert der Obergrenze für die erste Dimension in der Variablen Message und beendet die Zeile (vbCrLf). Die zweite Anweisung fügt den ersten der Variablen Message zugewiesenen Wert hinzu und kombiniert ihn mit der Obergrenze der zweiten Dimension mit einer Popup-Nachricht.

Da das vbCrLf in beiden Anweisungen verwendet wird, funktioniert es hier in beiden Anweisungen als Zeilenvorschub / Zeilenumbruch.

Schritt 4: Führen Sie den Code durch Drücken von F5 oder Ausführen aus und sehen Sie sich die Ausgabe an.

In ähnlichen Zeilen können wir bis zu mehreren Dimensionen gehen und die obere Grenze für jede von ihnen sehen.

Beispiel # 3 - UBound-Funktion zum automatischen Aktualisieren der Daten im Blatt

Angenommen, Sie haben einen Datensatz wie im folgenden Screenshot gezeigt.

Diese Daten werden aktualisiert und Sie müssen die aktualisierten Daten von Zeit zu Zeit kopieren. Jetzt ist es wirklich mühsam, immer nach den Datenaktualisierungen zu suchen und sie dann auf das neue Blatt zu kopieren. Es kostet auch viel Zeit. Können wir versuchen, es mit der UBound-Funktion in VBA zu automatisieren? Mal sehen.

Führen Sie die folgenden Schritte aus, um die Daten im Blatt mithilfe der VBA-UBound-Funktion automatisch zu aktualisieren:

Schritt 1: Definieren Sie eine Variable, indem Sie ein Makro erstellen.

Code:

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

Schritt 2: Aktivieren Sie das Arbeitsblatt, das Ihre Daten enthält. In diesem Fall lautet der Blattname " Daten ".

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Variant Sheets ("Daten") .Aktivieren Sie End Sub 

Schritt 3: Weisen Sie den Bereich der soeben erstellten Variablen zu. Wir werden zu diesem Zweck aktivierte Blätter verwenden.

Code:

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

Schritt 4: Fügen Sie Ihrem Excel ein neues Arbeitsblatt hinzu, in das die aktualisierten Daten kopiert und eingefügt werden können.

Code:

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

Schritt 5: Verwenden Sie nun die folgende Codezeile, mit der die Daten aus dem Datenblatt kopiert und automatisch in ein neu erstelltes Excel-Blatt eingefügt werden können.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Variant Sheets ("Data"). Aktivieren Sie 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 

Der obige Code versetzt die Zellen vom Datenblatt bis zur oberen Grenze, die mit der verwendeten UBound-Funktion abgerufen werden kann, und weist den Bereich der Variablen DataUpdate zu.

Schritt 6: Führen Sie den Code durch Drücken von F5 oder Ausführen aus und sehen Sie sich die Ausgabe an.

Wie Sie sehen, wird in der Excel-Arbeitsmappe ein neues Blatt hinzugefügt, in das alle Daten aus dem Blatt "Daten" automatisch kopiert werden.

Dies ist ein dynamischer Code. Was ich damit meine, dass es dynamisch ist, obwohl ich spaltenweise und zeilenweise hinzufüge, wird es automatisch auf ein neues Blatt kopiert.

Schritt 7: Fügen Sie den Daten einige Zeilen und Spalten hinzu und prüfen Sie, ob sie tatsächlich funktionieren.

Schritt 8: Klicken Sie erneut auf die Schaltfläche Ausführen, nachdem das Datenblatt aktualisiert wurde, und sehen Sie die Magie.

Wenn Sie sehen, wird ein neues Blatt hinzugefügt (farbig) und eine neue Spalte mit dem Alter sowie zwei neue Zeilen werden ebenfalls in diesem Blatt hinzugefügt. Unabhängig davon, was wir in der Stammdatei (Daten) aktualisieren, kopiert dieser Code automatisch alles davon und fügt es in ein neues Blatt ein.

Dinge, an die man sich erinnern sollte

  • UBound gibt die Obergrenze / Maximallänge eines Arrays und nicht die Obergrenze der in einem Array vorhandenen Datenpunkte an.
  • Das Array beginnt immer an der 0- ten Position, was den meisten Programmiersprachen wie C, C ++ und Python entspricht.
  • Wenn Ihr Array mehrdimensional ist, müssen Sie auch das Dimensionsargument angeben, das numerische ganze Werte wie 1, 2, 3 usw. annimmt. 1 steht für eindimensional, 2 für zweidimensional und so weiter.

Empfohlene Artikel

Dies ist eine Anleitung zur VBA UBound-Funktion. Hier diskutieren wir die Verwendung der Excel VBA UBound-Funktion zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA-Split-Funktion mit Beispielen
  2. Excel-Großbuchstabenfunktion
  3. VBA Match
  4. Deckenfunktion in Excel
  5. Wie verwende ich VBA-Arbeitsblätter?