VBA-String-Array

Excel VBA String Array

In VBA ist das String-Array nichts anderes als eine Array-Variable, die mit einer einzelnen Variablen mehr als einen String-Wert enthalten kann.

Ein Beispiel finden Sie im folgenden VBA-Code.

Code:

 Sub String_Array_Example () Dim CityList (1 bis 5) As Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub 

Im obigen Code habe ich als Array-Variable deklariert und die Länge eines Arrays als 1 bis 5 zugewiesen.

 Dim CityList (1 bis 5) als Variante 

Für diese Array-Variable habe ich 5 Städtenamen zugewiesen, in denen jede Array-Anzahl in Klammern angegeben ist.

CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa"

Als nächstes habe ich einen Code geschrieben, um diese Städtenamen im Meldungsfeld anzuzeigen.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Wenn ich diesen Code ausführe, erhalten wir ein Meldungsfeld, in dem alle Städtenamen in einem einzigen Meldungsfeld angezeigt werden.

Wir alle wissen, dass dies so viel Zeit aus unserem Zeitplan gespart hat, da die Aufgabe, einzelne Variablen für jede Stadt zu deklarieren, entfällt. Eine weitere Sache, die Sie lernen müssen, ist, dass wir den Zeilencode, den wir für Zeichenfolgenwerte schreiben, immer noch reduzieren können. Schauen wir uns an, wie wir Code für VBA-String-Arrays schreiben.

Beispiele für String-Arrays in Excel VBA

Unten finden Sie Beispiele für ein Excel-VBA-String-Array.

Sie können diese VBA String Array Excel-Vorlage hier herunterladen - VBA String Array Excel-Vorlage

Beispiel 1

Wie wir im obigen Code gesehen haben, können wir basierend auf der ermittelten Arraygröße mehr als einen Wert in der Variablen speichern.

Was wir jetzt tun müssen, ist, die Array-Länge nicht rechtzeitig zu bestimmen.

Code:

 Sub String_Array_Example1 () Dim CityList () As Variant End Sub 

Wie Sie oben in der Klammer sehen können, habe ich keine Längen geschrieben. Fügen Sie nun für diese Variable Werte mithilfe der VBA ARRAY-Funktion ein.

Übergeben Sie innerhalb des Arrays die Werte in doppelten Anführungszeichen, die jeweils durch ein Komma (,) getrennt sind.

Code:

 Sub String_Array_Example () Dim CityList () als Variante CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub 

Behalten Sie nun den alten Code bei, um das Ergebnis der Städtenamen im Meldungsfeld in VBA anzuzeigen.

Code:

 Sub String_Array_Example1 () Dim CityList () als Variante CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub 

Eine Änderung, die ich im obigen Code vorgenommen habe, ist, dass wir die Unter- und Obergrenze einer Array-Variablen nicht festgelegt haben und die ARRAY-Funktion verwendet haben. Die Array-Anzahl beginnt bei 0 und nicht bei 1.

Aus diesem Grund haben wir die Werte als CityList (0), ClityList (1), CityList (2), CityList (3) und CityList (4) bezeichnet.

Führen Sie nun den Code über die Excel-Tastenkombination F5 oder manuell aus. Wir erhalten das gleiche Ergebnis wie aus dem vorherigen Code.

Beispiel 2

VBA-String-Array mit LBOUND- und UBOUND-Funktionen

Wenn Sie nicht die gesamte Stadtliste in einem einzigen Meldungsfeld anzeigen möchten, müssen Sie Schleifen einschließen. Definieren Sie eine weitere Variable für Schleifen.

Um nun die FOR NEXT-Schleife einzuschließen, sind wir uns nicht sicher, wie oft wir den Code ausführen müssen. In diesem Fall können wir ihn wie fünf Mal entscheiden, aber das ist nicht der richtige Weg, um das Problem anzugehen. Wie wäre es also mit der Idee einer automatischen Array-Längenkennung auf niedrigerer und höherer Ebene?

Wenn wir die FOR NEXT-Schleife öffnen, bestimmen wir normalerweise die Schleifenlänge je nach Situation als 1 bis 5 oder 1 bis 10. Anstatt die Zahlen manuell einzugeben, verwenden wir die Funktionen LBOUND und UBOUND, um automatisch über den unteren und oberen Wert zu entscheiden.

Für LBound und Ubound habe ich den Arraynamen dh CityList angegeben. VBA LBound identifiziert den unteren Wert der Array-Variablen und die VBA UBound-Funktion identifiziert den oberen Wert der Array-Variablen.

Zeigen Sie nun den Wert im Meldungsfeld an, anstatt die Seriennummer einzufügen, und lassen Sie die Schleifenvariable "k" den Array-Wert automatisch übernehmen.

Code:

 Sub String_Array_Example1 () Dim CityList () als Variante Dim k als Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Für k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Weiter k End Sub 

Jetzt wird im Meldungsfeld jeder Städtename separat angezeigt.

Beispiel 3

VBA-String-Array mit Split-Funktion

Angenommen, Sie haben Städtenamen wie die folgenden.

Bangalore, Mumbai, Kolkata, Hydrabad, Orissa

In diesem Fall werden alle Städte zusammen mit dem Doppelpunkt kombiniert, der jede Stadt trennt. In solchen Fällen müssen wir die SPLIT-Funktion verwenden, um jede Stadt zu trennen.

Geben Sie als Ausdruck die Stadtliste an.

Code:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", Für k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Sub 

Das nächste Argument ist "Trennzeichen", dh was ist das eine Zeichen, das jede Stadt von anderen Städten trennt, in diesem Fall "Doppelpunkt".

Code:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") Für k = LBound (CityList) To UBound (CityList) MsgBox CityList (k ) Weiter k End Sub 

Jetzt bestimmen die SPLIT-Funktionsaufteilungswerte auch die höchste Arraylänge.

Dinge, an die man sich erinnern sollte

  • LBOUND und UBOUND sind Funktionen zum Bestimmen der Array-Längen.
  • Die ARRAY-Funktion kann viele Werte für eine deklarierte Variable enthalten.
  • Wenn Sie die ARRAY-Funktion einmal verwenden möchten, legen Sie die Array-Länge nicht fest.