VBA String in Array aufteilen

Excel VBA String in Array aufteilen

Eine Zeichenfolge ist eine Sammlung von Zeichen, die miteinander verbunden sind. Wenn diese Zeichen geteilt und in einer Variablen gespeichert werden, wird diese Variable zu einem Array für diese Zeichen. Die Methode, mit der wir eine Zeichenfolge in ein Array aufteilen, ist die Verwendung der SPLIT-Funktion in vba, die die Zeichenfolge in eine eindimensionale Zeichenfolge aufteilt.

Wie Arbeitsblätter in VBA haben wir auch Funktionen, um mit String- oder Textwerten umzugehen. Wir sind mit den Zeichenfolgenoperationen wie dem Extrahieren des ersten Namens, des Nachnamens, des zweiten Vornamens usw. sehr vertraut. Aber wie wäre es mit der Idee, den Zeichenfolgenwert in VBA in Arrays aufzuteilen? Ja, Sie haben richtig gehört, dass wir Zeichenfolgensätze mithilfe der VBA-Codierung in Arrays aufteilen können. In diesem speziellen Artikel zeigen wir Ihnen, wie Sie die Zeichenfolge in Excel VBA in ein Array aufteilen.

Was ist Split String in ein Array?

Lassen Sie mich dies zunächst klarstellen: "String in Array" ist nichts anderes als "verschiedene Teile des Satzes oder der Zeichenfolge werden in mehrere Teile aufgeteilt". Wenn der Satz beispielsweise "Bangalore ist die Hauptstadt von Karnataka" lautet, ist jedes Wort ein anderes Array.

Wie dieser Satz in das Array aufgeteilt wird, ist das Thema dieses Artikels.

Wie konvertiere ich einen geteilten String in ein Array in Excel VBA?

Um die geteilte Zeichenfolge in ein Array in VBA umzuwandeln, haben wir eine Funktion namens "SPLIT". Dies ist eine VBA-Funktion, die die Aufgabe ausführt, den angegebenen Zeichenfolgenwert basierend auf dem bereitgestellten Trennzeichen auf verschiedene Teile aufzuteilen.

Wenn der Satz beispielsweise "Bangalore ist die Hauptstadt von Karnataka" lautet, ist das Leerzeichen das Trennzeichen zwischen den einzelnen Wörtern.

Unten finden Sie die Syntax der SPLIT-Funktion.

  • Wert oder Ausdruck: Dies ist der String- oder Textwert, den wir in das Array konvertieren möchten, indem wir jeden Teil des Strings trennen.
  • [Trennzeichen]: Dies ist nichts anderes als die allgemeinen Dinge, die jedes Wort in der Zeichenfolge trennen. In unserem Satz „Bangalore ist die Hauptstadt von Karnataka“ wird jedes Wort durch ein Leerzeichen getrennt, sodass unser Trennzeichen hier das Leerzeichen ist.
  • [Limit]: Limit ist nichts anderes als die Anzahl der Teile, die wir als Ergebnis haben möchten. Für ein Beispiel im Satz „Bangalore ist die Hauptstadt von Karnataka“ haben wir sieben Teile. Wenn wir nur drei Teile benötigen, erhalten wir den ersten Teil als „Bangalore“, den zweiten Teil als „ist“ und den dritten Teil als Rest der Satz dh "die Hauptstadt von Karnataka".
  • [Vergleichen]: Dies wird in 99% der Fälle nicht verwendet. Lassen Sie uns dies zu diesem Zeitpunkt nicht berühren.
Sie können diese VBA-Zeichenfolge in Array-Excel-Vorlage hier herunterladen - VBA-Zeichenfolge in Array-Excel-Vorlage aufteilen

Beispiel 1

Ok, jetzt sehen wir uns praktische Beispiele an.

Schritt 1: Definieren Sie die VBA-Variable, die den Zeichenfolgenwert enthält.

Code:

 Sub String_To_Array () Dim StringValue As String End Sub 

Schritt 2: Weisen Sie dieser Variablen die Zeichenfolge "Bangalore ist die Hauptstadt von Karnataka" zu.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ist die Hauptstadt von Karnatka" End Sub 

Schritt 3: Definieren Sie als Nächstes eine weitere Variable, die jeden Teil des obigen Zeichenfolgenwerts enthalten kann. Da der Satz mehr als ein Wort enthält, müssen wir die Variable als „Array“ definieren, um mehr als einen Wert zu enthalten.

In diesem Fall haben wir 7 Wörter in der Zeichenfolge. Definieren Sie das Array also wie folgt.

Code:

 Sub String_To_Array () Dim StringValue als String StringValue = "Bangalore ist die Hauptstadt von Karnatka" Dim SingleValue () als String End Sub 

Für diese Array-Variable verwenden wir nun die SPLIT-Funktion, um die Zeichenfolge in Excel VBA in ein Array aufzuteilen.

Code:

 Sub String_To_Array () Dim StringValue als String StringValue = "Bangalore ist die Hauptstadt von Karnataka" Dim SingleValue () als String SingleValue = Split (StringValue, "") End Sub 

Der Ausdruck ist unser Zeichenfolgenwert, dh die Variable enthält bereits den Zeichenfolgenwert. Geben Sie daher nur den Variablennamen ein.

Das Trennzeichen in dieser Zeichenfolge ist ein Leerzeichen. Geben Sie also dasselbe an.

Code:

 Sub String_To_Array () Dim StringValue als String StringValue = "Bangalore ist die Hauptstadt von Karnataka" Dim SingleValue () als String SingleValue = Split (StringValue, "") End Sub 

Verlassen Sie ab sofort andere Teile der SPLIT-Funktion.

Die SPLIT-Funktion teilt den Zeichenfolgenwert in 7 Teile auf, wobei jedes Wort auf Kosten des Leerzeichens getrennt wird. Da wir die Variable "SingleValue" als Array deklariert haben, können wir dieser Variablen alle 7 Werte zuweisen.

Wir können den Code wie folgt schreiben.

Code:

 Sub String_To_Array () Dim StringValue als String StringValue = "Bangalore ist die Hauptstadt von Karnataka" Dim SingleValue () als String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Führen Sie den Code aus und sehen Sie, was wir im Meldungsfeld erhalten.

Ab sofort können wir das erste Wort sehen, dh "Bangalore", um weitere Wörter anzuzeigen. Wir können den Code wie folgt schreiben.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ist die Hauptstadt von Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Führen Sie nun den Code aus und sehen Sie, was wir im Meldungsfeld erhalten.

Jedes einzelne Wort wurde in Arrays aufgeteilt.

Beispiel 2

Stellen Sie sich nun eine Situation vor, in der diese Werte in Zellen gespeichert werden, dh jedes Wort in einer separaten Zelle. Dazu müssen wir die FOR NEXT-Schleife in VBA aufnehmen.

Der folgende Code fügt jedes Wort in separate Zellen ein.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore ist die Hauptstadt von Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer Für k = 1 bis 7 Zellen (1, k) .Value = SingleValue (k - 1) Weiter k End Sub 

Dadurch wird jedes Wort wie im folgenden Bild gezeigt eingefügt.

Dinge, an die man sich erinnern sollte

  • Array und Schleifen werden zusammen verwendet, um den Code dynamisch zu gestalten.
  • Die SPLIT-Funktion erfordert ein gemeinsames Trennzeichen, das jedes Wort im Satz trennt.
  • Die Array-Länge beginnt bei Null und nicht bei 1.