Excel VBA Join Function

La funzione VBA JOIN viene utilizzata per unire una matrice di sottostringhe con il delimitatore specificato. Proprio come la parola stessa significa che deve unire due o più stringhe. Ora qui ci sono alcune catture con esso. Le stringhe sono in un array e utilizza anche un delimitatore come funzione concatenata. Ma il delimitatore per la funzione concatenata potrebbe essere diverso tra due stringhe qualsiasi perché è necessario fornire un delimitatore tra ogni due stringhe utilizzando la funzione concatenata. Ma in Join in VBA dobbiamo fornire delimitatore solo una volta. Quel delimitatore viene utilizzato per ogni stringa da unire. Ma questo parametro è anche facoltativo. Quindi cosa succede quando non forniamo un delimitatore alla funzione? Quando non forniamo alcun delimitatore alla funzione, per impostazione predefinita viene considerato "spazio" come delimitatore.

Sintassi della funzione Join in Excel VBA

La funzione Join ha la seguente sintassi in Excel VBA:

Ora cerchiamo di capire gli argomenti per la funzione Join VBA,

  • Array di origine: è un array o un insieme di stringhe che vogliamo unire.
  • Delimitatore: questo è il delimitatore o il carattere che utilizziamo per differenziare una stringa dall'altra. Un delimitatore può essere spazio o una virgola o un punto o un carattere qualsiasi dal nostro computer.

L'output restituito da questa funzione è una stringa.

Come utilizzare la funzione Join VBA di Excel?

Impareremo come utilizzare una funzione Join VBA con alcuni esempi in Excel.

Puoi scaricare questo VBA Iscriviti al modello Excel qui - VBA Iscriviti al modello Excel

Excel VBA Join - Esempio n. 1

Innanzitutto, cominciamo con un esempio di base. Abbiamo un percorso di un file memorizzato in diverse celle del nostro foglio di lavoro nel foglio 1. Vogliamo un percorso totale verso quella posizione in un'altra cella. Il percorso che deve essere unito è il seguente,

Vogliamo il percorso nella cella E2. Seguire i passaggi seguenti per utilizzare la funzione Join in Excel VBA.

Passaggio 1: vai alla scheda dello sviluppatore e fai clic su Visual Basic per accedere a VB Editor.

Passaggio 2: fare clic sulla scheda Inserisci e inserire un modulo nel progetto VBA.

Passaggio 3: ora dichiariamo la nostra prima sottoprocedura come segue.

Codice:

 Esempio secondario () End Sub 

Passaggio 4: poiché abbiamo i dati con noi, possiamo semplicemente utilizzare il valore della proprietà range per unire il percorso come segue.

Codice:

 Esempio secondario () Range ("E2"). Valore = End Sub 

Passaggio 5: utilizzare la funzione Unisci per unire tutte le stringhe insieme al delimitatore come "\".

Codice:

 Esempio secondario () Range ("E2"). Valore = Join (Array (Range ("A2"). Valore, Range ("B2"). Valore, Range ("C2"). Valore, Range ("D2") .Value), "\") End Sub 

Passaggio 6: Esegui il codice sopra premendo il tasto F5 o facendo clic sul pulsante Riproduci corsa e avremo il nostro risultato nella cella E2 come mostrato di seguito.

Possiamo vedere che tutte e quattro le stringhe sono unite insieme con un delimitatore comune che è "\".

Excel VBA Join - Esempio n. 2

Andiamo avanti con un esempio pratico. Ho il nome dello studente, i segni e passa o fallisci in un foglio. Vogliamo creare una cartella separata con file che contengano se lo studente è passato o fallito o è stato graziato. Per questo, prenderemo in prestito alcuni dei concetti di FSO (File System Objects) usando la funzione join. Bene, i dati sembrano uno come di seguito.

Seguire i passaggi seguenti per utilizzare la funzione Join in Excel VBA.

Passaggio 1: nello stesso modulo, iniziamo un'altra sottoprocedura come segue.

Codice:

 Esempio secondario2 () Fine Sottotitolo 

Passaggio 2: dichiarare due variabili come UST e texttream che è un metodo di UST come segue.

Codice:

 Dim FSO come nuovo Scripting.FileSystemObject Dim St As Scripting.TextStream 

Passaggio 3: ora dichiariamo alcune altre variabili, una come intervallo per contenere le righe e un'altra come numero intero per contenere le colonne, mentre un'altra come stringa per memorizzare il valore di stringa unito e il percorso della cartella e una per creare i nomi dei file.

Codice:

 Dim rw come intervallo Dim res come stringa Dim col come numero intero Dim FolPath come stringa Dim risultato come stringa 

Passaggio 4: poiché abbiamo i dati nel foglio 2, attiviamo prima il foglio 2.

Codice:

 Fogli di lavoro ( "Sheet2"). Activate 

Passaggio 5: ora contiamo il numero di colonne che abbiamo nei dati come segue,

Codice:

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

Passaggio 6: Ora assegniamo un percorso al Folpath usando la funzione Informazioni ENVIRON come segue.

Codice:

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

Passo 7: Ora controlliamo se la cartella esiste o no e se non lo fa quindi creiamo uno usando il metodo FSO come segue.

Codice:

 If Not FSO.FolderExists (FolPath) Quindi FSO.CreateFolder FolPath 

Passaggio 8: Ora aggiungiamo i nomi memorizzati usando la funzione offset come segue.

Codice:

 Per ogni rw nell'intervallo ("A2", intervallo ("A1"). Fine (xlDown)) Risultato = rw.Offset (0, 1) .Valore 

Questo aprirà i file con i nomi contemporaneamente in modalità di aggiunta in cui i valori più recenti saranno gli ultimi da aggiungere. Abbiamo utilizzato il codice sopra riportato in modo che il valore del risultato venga assegnato uno per uno.

Passaggio 9: Ora poiché la funzione Join utilizza l'array 1-D, useremo la funzione application.transpose con la funzione join per convertirla in un array 1-D come segue.

Codice:

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

Perché abbiamo usato application.transpose? Perché in generale l'array (1-D) deve essere orizzontale, il che significa che una riga ha molte colonne. Ora poiché abbiamo un intervallo verticale qui nella colonna B, che è il risultato, abbiamo usato questa funzione di trasposizione per convertirla in un array 1-D. Abbiamo usato VbTab come delimitatore in modo che i valori siano nelle celle successive.

Passaggio 10: Prima di terminare il ciclo for, chiudiamo il file e quindi terminiamo il ciclo for come segue.

Il codice complessivo è simile al seguente.

Codice:

 Esempio 2 () Dim. FSO come nuovo Scripting.FileSystemObject Dim st come Scripting.TextStream Dim rw come intervallo Dim res come stringa Dim col come numero intero Dim FolPath come stringa Dim Risultato come fogli di lavoro stringa ("Foglio2"). Attiva col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Result "Se non FSO.FolderExists (FolPath) Quindi FSO.CreateFolder FolPath per ogni rw in Range (" A2 ", Range (" A1 "). End (xlDown)) Result = rw.Offset (0, 1) .Value Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Applicazione .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Chiudi Next rw End Sub 

Passaggio 11: Ora eseguiamo il codice sopra premendo il tasto F5, possiamo vedere sul nostro desktop che è stata creata una cartella con il nome del risultato, come mostrato di seguito.

Step 12: Apri la cartella avremo tre file come Pass, Fail e Grace.

Se apriamo uno qualsiasi dei file, diciamo solo che apriamo il file Fail, possiamo vedere i dati per gli studenti che hanno fallito.

Cose da ricordare

  • Viene utilizzato per unire un array di stringhe con un delimitatore comune.
  • L'output restituito da questa funzione è String.
  • È opposto alla funzione Split in VBA.
  • Se non forniamo un delimitatore a questa funzione, per impostazione predefinita viene utilizzato lo "spazio" come delimitatore.
  • La matrice nell'argomento dovrebbe essere una matrice unidimensionale. Altrimenti possiamo usare i metodi convenzionali di application.transpose come spiegato nell'esempio 2.

Articoli consigliati

Questa è una guida alla funzione Join VBA. Qui discutiamo come usare la funzione Join in Excel usando il codice VBA insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Funzione data Excel
  2. Concatena le stringhe in Excel
  3. Applicazioni di VBA Union
  4. Colonne concatenanti di Excel

Categoria: