Excel VBA Join-Funktion

Die VBA JOIN-Funktion wird verwendet, um ein Array von Teilzeichenfolgen mit dem angegebenen Begrenzer zusammenzufügen. Genau wie das Wort selbst bedeutet, dass es zwei oder mehr Zeichenfolgen verbinden muss. Nun hier sind ein paar Fänge damit. Die Zeichenfolgen befinden sich in einem Array und es wird auch ein Trennzeichen als Verkettungsfunktion verwendet. Das Trennzeichen für die Verkettungsfunktion kann sich jedoch zwischen zwei beliebigen Zeichenfolgen unterscheiden, da bei Verwendung der Verkettungsfunktion ein Trennzeichen zwischen zwei Zeichenfolgen angegeben werden muss. In Join in VBA müssen wir das Trennzeichen jedoch nur einmal angeben. Dieses Trennzeichen wird für jede Zeichenfolge verwendet, die verbunden werden soll. Dieser Parameter ist aber auch optional. Was passiert also, wenn wir der Funktion kein Trennzeichen geben? Wenn wir der Funktion kein Trennzeichen zuweisen, wird standardmäßig "Leerzeichen" als Trennzeichen verwendet.

Syntax der Verknüpfungsfunktion in Excel VBA

Die Join-Funktion hat in Excel VBA die folgende Syntax:

Lassen Sie uns nun die Argumente für die VBA-Join-Funktion verstehen,

  • Quell-Array: Dies ist ein Array oder eine Reihe von Strings, die wir zusammenfügen möchten.
  • Trennzeichen: Dies ist das Trennzeichen oder das Zeichen, mit dem wir zwischen Zeichenfolgen unterscheiden. Ein Trennzeichen kann ein Leerzeichen oder ein Komma oder ein Punkt oder ein beliebiges Zeichen von unserem Computer sein.

Die von dieser Funktion zurückgegebene Ausgabe ist eine Zeichenfolge.

Wie benutze ich die Excel VBA Join Funktion?

Anhand einiger Beispiele in Excel lernen wir, wie man eine VBA-Join-Funktion verwendet.

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

Excel VBA Join - Beispiel # 1

Beginnen wir zunächst mit einem einfachen Beispiel. Wir haben einen Pfad einer Datei, die in verschiedenen Zellen unseres Arbeitsblatts in Blatt 1 gespeichert ist. Wir wollen einen Gesamtpfad zu diesem Ort in einer anderen Zelle. Der Pfad, der zusammengefügt werden muss, ist wie folgt:

Wir wollen den Pfad in Zelle E2. Führen Sie die folgenden Schritte aus, um die Verbindungsfunktion in Excel VBA zu verwenden.

Schritt 1: Gehen Sie zur Registerkarte des Entwicklers und klicken Sie auf Visual Basic, um in den VB Editor zu gelangen.

Schritt 2: Klicken Sie auf die Registerkarte Einfügen und fügen Sie ein Modul in das VBA-Projekt ein.

Schritt 3: Lassen Sie uns nun unseren ersten Unterprozess wie folgt deklarieren.

Code:

 Sub Beispiel () End Sub 

Schritt 4: Da wir die Daten bei uns haben, können wir einfach den Bereichseigenschaftswert verwenden, um den Pfad wie folgt zu verknüpfen.

Code:

 Sub Beispiel () Bereich ("E2"). Wert = End Sub 

Schritt 5: Verwenden Sie die Join-Funktion, um alle Zeichenfolgen zusammen mit dem Trennzeichen „\“ zu verbinden.

Code:

 Unterbeispiel () Bereich ("E2"). Wert = Verbinden (Array (Bereich ("A2"). Wert, Bereich ("B2"). Wert, Bereich ("C2"). Wert, Bereich ("D2") .Value), "\") End Sub 

Schritt 6: Führen Sie den obigen Code durch Drücken der Taste F5 oder durch Klicken auf die Schaltfläche Play run aus. Das Ergebnis wird in Zelle E2 angezeigt (siehe Abbildung unten).

Wir können sehen, dass alle vier Zeichenfolgen mit einem gemeinsamen Trennzeichen „\“ verbunden sind.

Excel VBA Join - Beispiel # 2

Fahren wir mit einem praktischen Beispiel fort. Ich habe den Namen des Schülers, Noten und Bestanden oder Nicht Bestanden auf einem Blatt. Wir möchten einen separaten Ordner mit Dateien erstellen, in denen angegeben ist, ob der Schüler bestanden oder nicht bestanden wurde oder ob die Prüfung erfolgreich war. Dazu werden wir einige Konzepte von FSO (File System Objects) mit der Join-Funktion ausleihen. Nun, die Daten sehen wie folgt aus.

Führen Sie die folgenden Schritte aus, um die Verbindungsfunktion in Excel VBA zu verwenden.

Schritt 1: Lassen Sie uns im selben Modul eine weitere Unterprozedur wie folgt starten.

Code:

 Sub Example2 () End Sub 

Schritt 2: Deklarieren Sie zwei Variablen als FSO und Textstream. Dies ist eine Methode von FSO wie folgt.

Code:

 FSO als neues Scripting dimmen. FileSystemObject Dim St als Scripting.TextStream 

Schritt 3: Lassen Sie uns nun einige weitere Variablen deklarieren: Eine als Bereich für die Zeilen und eine als Ganzzahl für die Spalten, eine als String zum Speichern des zusammengefügten Zeichenfolgenwerts und des Ordnerpfads und eine zum Erstellen der Dateinamen.

Code:

 Dim rw As Range Dim res As String Dim col As Integer Dim FolPath As String Dim Result As String 

Schritt 4: Da wir die Daten in Blatt 2 haben, lassen Sie uns zuerst Blatt 2 aktivieren.

Code:

 Arbeitsblätter ("Sheet2"). Aktivieren 

Schritt 5: Zählen wir nun die Anzahl der Spalten in den Daten wie folgt:

Code:

 col = Range ("A1"). CurrentRegion.Columns.Count 

Schritt 6: Weisen Sie nun dem Pfad einen Pfad zu, indem Sie die Informationsfunktion ENVIRON wie folgt verwenden.

Code:

 FolPath = Environ ("UserProfile") & "\ Desktop \ Result" 

Schritt 7: Lassen Sie uns nun überprüfen, ob der Ordner vorhanden ist oder nicht. Wenn dies nicht der Fall ist, erstellen Sie einen Ordner mithilfe der FSO-Methode wie folgt.

Code:

 Wenn nicht FSO.FolderExists (FolPath), dann FSO.CreateFolder FolPath 

Schritt 8: Hängen Sie nun die mit der Offset-Funktion gespeicherten Namen wie folgt an.

Code:

 Für jede Reihe In Range ("A2", Range ("A1"). End (xlDown)) Result = rw.Offset (0, 1) .Value 

Dadurch werden die Dateien mit Namen gleichzeitig im Anhänge-Modus geöffnet, wobei neuere Werte als letzte angehängt werden. Wir haben den obigen Code verwendet, damit der Wert des Ergebnisses nacheinander zugewiesen wird.

Schritt 9: Da die Join-Funktion nun ein 1-D-Array verwendet, verwenden wir die application.transpose-Funktion mit der Join-Funktion, um sie wie folgt in ein 1-D-Array zu konvertieren.

Code:

 Setze St = FSO.OpenTextFile (FolPath & "\" & Result & ".xls", ForAppending, True) res = Join (Application.Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab ) St.WriteLine res 

Warum haben wir application.transpose verwendet? Da der Bereich des Arrays (1-D) im Allgemeinen horizontal sein muss, bedeutet dies, dass eine Zeile viele Spalten enthält. Da wir hier in Spalte B einen vertikalen Bereich haben, der das Ergebnis ist, haben wir dieses Transponierungsmerkmal verwendet, um es in ein 1-D-Array umzuwandeln. Wir haben VbTab als Trennzeichen verwendet, damit sich die Werte in den nächsten Zellen befinden.

Schritt 10: Bevor Sie die for-Schleife beenden, schließen Sie die Datei und beenden Sie die for-Schleife wie folgt.

Der Gesamtcode sieht wie folgt aus.

Code:

 Sub Example2 () Dim FSO als neues Scripting.FileSystemObject Dim St als Scripting.TextStream Dim rw als Range Dim res als String Dim col als Integer Dim FolPath als String Dim Result als String Worksheets ("Sheet2"). Activate col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Result "Wenn nicht FSO.FolderExists (FolPath), dann FSO.CreateFolder FolPath für jede Zeile im Bereich (" A2 ", Range (" A1 "). End (xlDown)) Result = rw.Offset (0, 1) .Value Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Anwendung .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Next rw End Sub 

Schritt 11: Lassen Sie uns nun den obigen Code ausführen, indem Sie die Taste F5 drücken. Auf unserem Desktop sehen wir, dass ein Ordner mit dem Namen Result wie unten gezeigt erstellt wurde.

Schritt 12: Öffnen Sie den Ordner mit den drei Dateien Pass, Fail und Grace.

Wenn wir eine der Dateien öffnen, lassen Sie uns einfach sagen, dass wir die Fehlerdatei öffnen. Wir können die Daten für die Schüler anzeigen, bei denen ein Fehler aufgetreten ist.

Dinge, an die man sich erinnern sollte

  • Es wird verwendet, um ein String-Array mit einem gemeinsamen Trennzeichen zu verbinden.
  • Die von dieser Funktion zurückgegebene Ausgabe ist String.
  • Dies ist im Gegensatz zur Split-Funktion in VBA.
  • Wenn wir für diese Funktion kein Trennzeichen angeben, wird standardmäßig "Leerzeichen" als Trennzeichen verwendet.
  • Das Array im Argument sollte ein eindimensionales Array sein. Wenn nicht, können wir die konventionellen Applikationsmethoden anwenden und wie in Beispiel 2 erklärt transponieren.

Empfohlene Artikel

Dies ist eine Anleitung zur VBA-Join-Funktion. Hier wird die Verwendung der Join-Funktion in Excel unter Verwendung von VBA-Code zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Excel-Datumsfunktion
  2. Verketten Sie Zeichenfolgen in Excel
  3. Anwendungen von VBA Union
  4. Excel, das Spalten verkettet

Kategorie: