VBA UBOUND

UBOUND oder auch als Upper Bound bekannt. Diese Funktion in VBA wird mit der entgegengesetzten Funktion verwendet, die LBOUND oder auch als Lower Bound-Funktion bezeichnet wird. Mit dieser Funktion wird die Länge eines Arrays in einem Code definiert und wie der Name schon sagt, UBOUND wird verwendet, um die Obergrenze des Arrays zu definieren.

VBA UBOUND-Funktion

Wie können Sie die maximale Länge des Arrays in Excel ermitteln? Ja, wir können die maximale Länge des Arrays manuell anzeigen und aktualisieren, aber wenn Sie dies alles tun, ist heute das Ende davon, da wir eine Funktion namens UBOUND haben, um die maximale Länge des Arrays zu bestimmen. Folgen Sie diesem Artikel, um mehr über die UBOUND-Funktion in Excel VBA zu erfahren.

UBOUND steht für Upper Bound. Oft müssen wir beim Codieren die maximale Länge des Arrays ermitteln. Zum Beispiel MyResult (24) mittels Arraynamen MyResult hält 25 Werte, weil Array beginnt , sich von Null, nicht von einem. 24 bedeutet also +1, dh insgesamt 25 Werte.

Hier beträgt die maximale Länge des Arrays 24, anstatt die Array-Länge manuell anzugeben, können wir die integrierte Funktion UBOUND verwenden, um die maximale Länge des Arrays zu ermitteln.

Der Code lautet: UBOUND (MyResult)  dh UBOUND (24)

Die Excel VBA UBOUND-Funktion repräsentiert also die Obergrenze der Arraygröße.

Wie verwende ich die VBA UBound-Funktion in Excel?

Die Formel von VBA UBOUND ist sehr einfach, da sie nur zwei Parameter enthält.

UBound (Arrayname [, Dimension])
  • Array-Name: Dies ist der Name des von uns definierten Array-Namens. Im obigen Beispiel ist MyResult beispielsweise der Arrayname .
  • [Dimension]: Wenn das Array mehr als eine Dimension hat, müssen wir die Dimension des Arrays angeben. Wenn Sie dies ignorieren, wird standardmäßig die erste Dimension behandelt.

Die Excel VBA UBOUND-Funktion ist sehr nützlich, um die Länge der Schleifen beim Ausführen der Schleifen zu bestimmen.

Beispiele für die UBOUND-Funktion in Excel VBA

Nachfolgend finden Sie die praktischen Beispiele für die VBA UBound-Funktion.

Sie können diese VBA UBound-Funktionsvorlage hier herunterladen - VBA UBound-Funktionsvorlage

Beispiel 1

Lassen Sie mich den einfachen Code schreiben, um das Verfahren zu starten. Führen Sie die folgenden Schritte aus, um die VBA UBOUND-Funktion anzuwenden.

Schritt 1: Starten Sie das Excel-Makro und definieren Sie den Variablennamen.

Code:

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

Schritt 2: Ich werde diesem Array-Namen Werte zuweisen.

Code:

 Sub Ubound_Example1 () Dim ArrayLength (0 bis 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" End Sub 

Schritt 3: Wenn Sie nun ein Meldungsfeld mit der UBOUND-Funktion verwenden, sehen Sie die maximale Länge des Arrays.

Code:

 Sub Ubound_Example1 () Dim ArrayLength (0 bis 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Upper Bound Length ist:" & UBound (ArrayLength) End Sub 

Schritt 4: Führen Sie diesen Code aus, indem Sie die Taste F5 drücken, oder Sie können den Code auch manuell ausführen, wie im folgenden Screenshot gezeigt.

Das Meldungsfeld zeigt an, dass die obere Grenze des Arrays im Meldungsfeld angezeigt wird.

Auf diese Weise können wir mit der Excel VBA UBOUND-Funktion die Länge der oberen Grenze eines Arrays ermitteln.

Beispiel 2 - Verwenden der Excel VBA UBOUND-Funktion zum Kopieren der Daten

Angenommen, Sie haben eine Liste von Daten in einem Excel-Blatt wie dem folgenden.

Diese Daten werden täglich aktualisiert, und Sie müssen diese Daten bei jeder Aktualisierung auf das neue Blatt kopieren. Das manuelle Aktualisieren nimmt an Ihrem Arbeitsplatz viel Zeit in Anspruch, aber ich zeige Ihnen einfachen Makrocode, um dies zu automatisieren.

Schritt 1: Erstellen Sie ein Makro und definieren Sie die Array-Variable.

Code:

 Sub Ubound_Example2 () Dim DataRange () As Variant End Sub 

Schritt 2: Aktivieren Sie nun das Datenblatt, indem Sie auf seinen Namen verweisen.

Code:

 Sub Ubound_Example2 () Dim DataRange () als Variantenblätter ("Datenblatt"). Aktivieren Sie End Sub 

Schritt 3: Ordnen Sie nun den Datenbereich der definierten Variablen mit dem folgenden Code zu.

Code:

 Sub Ubound_Example2 () Dim DataRange () als Variantenblätter ("Datenblatt"). Aktivieren Sie DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub 

Schritt 4: Fügen Sie nun der Arbeitsmappe ein neues Arbeitsblatt hinzu.

Code:

 Sub Ubound_Example2 () Dim DataRange () als Variantenblätter ("Datenblatt"). Aktivieren Sie DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add End Sub 

Schritt 5: Fügen Sie nun die Daten mithilfe der Excel VBA UBOUND-Funktion in Form des folgenden Codes zum neu hinzugefügten Blatt hinzu.

Code:

 Sub Ubound_Example2 () Dim DataRange () als Variantenblätter ("Datenblatt"). Aktivieren Sie 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 

Der obige Code versetzt die Zellen um die maximale Länge, die von der UBOUND-Funktion zurückgegeben wird, und dieser Bereich entspricht dem Wert des Array-Namens " DataRange ".

Schritt 6: Führen Sie nun diesen Code aus, um den Wert in das neue Blatt einzufügen.

Dieser Code ist dynamisch, da selbst wenn die Daten horizontal und vertikal zunehmen, der Bereich automatisch übernommen wird. Jetzt werde ich den Daten einige Dummy-Zeilen hinzufügen.

Jetzt werde ich diesen Code noch einmal ausführen und nun auch die neu hinzugefügten Zeilen hinzufügen.

Code:

 Sub Ubound_Example2 () Dim DataRange () als Variantenblätter ("Datenblatt"). Aktivieren Sie 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 

Dinge, an die man sich erinnern sollte

  • UBOUND gibt die maximale Länge des Arrays zurück.
  • Das Array beginnt bei 0, nicht bei 1.
  • Wenn Sie den niedrigeren Wert des Arrays möchten, müssen Sie VBA LBOUND verwenden.
  • Wenn das Array mehr als eine Dimension hat, müssen Sie auch die Dimensionsnummer angeben.