Excel Funcție de unire VBA

Funcția VBA JOIN este utilizată pentru a uni împreună o serie de sub-linii cu delimitatorul specificat. La fel cum cuvântul în sine înseamnă că trebuie să unească două sau mai multe șiruri. Iată câteva capturi cu acesta. Șirurile sunt într-un tablou și folosește, de asemenea, un delimitator ca funcție de concatenare. Dar delimitatorul pentru funcția de concatenat ar putea fi diferit între cele două șiruri, deoarece trebuie să oferim un delimitator între fiecare două șiruri folosind funcția concatenată. Dar în Alăturați-vă VBA trebuie să oferim delimitator o singură dată. Acest delimiter este folosit pentru fiecare șir de alăturare. Dar acest parametru este de asemenea opțional. Ce se întâmplă atunci când nu furnizăm un delimitator pentru funcție? Atunci când nu furnizăm niciun delimitator funcției, este implicit „spațiu” ca delimitator.

Sintaxa funcției de unire în Excel VBA

Funcția Join are următoarea sintaxă în Excel VBA:

Acum să înțelegem argumentele pentru funcția VBA Join,

  • Sursa Array: Este un tablou sau un set de șiruri pe care dorim să le unim.
  • Delimiter: Acesta este delimitatorul sau caracterul pe care îl folosim pentru a diferenția între un șir de altul. Un delimitator poate fi spațiu sau virgulă sau o oprire completă sau orice caracter din computerul nostru.

Ieșirea returnată de această funcție este un șir.

Cum se utilizează funcția de înscriere Excel VBA?

Vom învăța cum să folosiți o funcție VBA Join cu câteva exemple în Excel.

Puteți descărca acest șablon VBA Join Excel aici - Modelul VBA Join Join

Excel VBA Join - Exemplul # 1

În primul rând, să începem cu un exemplu de bază. Avem o cale a unui fișier stocată în diferite celule din fișa noastră de lucru în foaia 1. Vrem o cale totală către acea locație într-o altă celulă. Calea care trebuie unită este următoarea,

Vrem calea în celula E2. Urmați pașii de mai jos pentru a utiliza funcția de alăturare în Excel VBA.

Pasul 1: Accesați fila dezvoltatorului și apoi faceți clic pe vizual basic pentru a putea intra în VB Editor.

Pasul 2: Faceți clic pe fila Insert și introduceți un modul în proiectul VBA.

Pasul 3: Haideți să declaram prima subprocedură după cum urmează.

Cod:

 Sub Exemplu () End Sub 

Pasul 4: Deoarece avem datele alături de noi, putem folosi pur și simplu valoarea proprietății intervalului pentru a alătura calea după cum urmează.

Cod:

 Sub Exemplu () Interval ("E2"). Valoare = Sub End 

Pasul 5: Utilizați funcția Join pentru a uni toate șirurile împreună cu delimitatorul ca „\”.

Cod:

 Sub Exemplu () Interval ("E2"). Valoare = Alăturare (Array (Range ("A2")) Valoare, Interval ("B2"). Valoare, Interval ("C2"). Valoare, Interval ("D2") .Value), "\") End Sub 

Pasul 6: Rulați codul de mai sus apăsând tasta F5 sau făcând clic pe butonul Redare rulare și vom avea rezultatul nostru în celula E2, așa cum se arată mai jos.

Putem vedea că toate cele patru șiruri sunt unite cu un delimitator comun care este „\”.

Excel VBA Join - Exemplul # 2

Haideți să mergem mai departe cu un exemplu practic. Am numele studentului, marcajele și trecerea sau eșecul într-o foaie. Vrem să facem un dosar separat cu fișiere care să conțină dacă studentul a trecut sau nu a reușit sau a primit grație. Pentru aceasta, vom împrumuta unele dintre conceptele FSO (File System Objects) folosind funcția de alăturare. Ei bine, datele arată ca una ca mai jos.

Urmați pașii de mai jos pentru a utiliza funcția de alăturare în Excel VBA.

Pasul 1: În același modul, să începem o altă subprocedură după cum urmează.

Cod:

 Sub Exemplu2 () End Sub 

Pasul 2: Declarați două variabile ca FSO și flux de text, care este o metodă de FSO după cum urmează.

Cod:

 Dim FSO ca nou Scripting.FileSystemObject Dim St As Scripting.TextStream 

Pasul 3: Haideți să declaram acum câteva variabile, una ca o gamă pentru a reține rândurile și alta ca număr întreg pentru a reține coloanele, iar alta ca String pentru a stoca valoarea șirului unit și calea Dosarului și una pentru a crea numele fișierelor.

Cod:

 Dim rw As Ran Dim Dim As String Dim col Ca Integer Dim FolPath Ca String Dim Rezultat Ca Șir 

Pasul 4: Deoarece avem datele din fișa 2, să activăm mai întâi foaia 2.

Cod:

 Foi de lucru ( „Foaie2“). Activează 

Pasul 5: Să numărăm acum numărul de coloane pe care le avem în date după cum urmează,

Cod:

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

Pasul 6: Să atribuim o cale către Folpath folosind funcția Informație ENVIRON după cum urmează.

Cod:

 FolPath = Environ ("UserProfile") și "\ Desktop \ Rezultat" 

Pasul 7: Acum să verificăm dacă folderul există sau nu și dacă nu ne permite atunci să ne creăm unul folosind metoda FSO după cum urmează.

Cod:

 Dacă nu FSO.FolderExists (FolPath) Atunci FSO.CreateFolder FolPath 

Pasul 8: Să adăugăm acum numele stocate folosind funcția de compensare după cum urmează.

Cod:

 Pentru fiecare rw In Range ("A2", Range ("A1"). End (xlDown)) Rezultat = rw.Offset (0, 1) .Value 

Aceasta va deschide fișierele cu nume simultan în modul de anexare, unde valorile mai noi vor fi ultimele care vor fi anexate. Am folosit codul de mai sus, astfel încât valoarea rezultatului să fie atribuită unul câte unul.

Pasul 9: Acum, deoarece funcția Join folosește matricea 1-D, vom folosi funcția application.transpose cu funcția join pentru a o converti într-un tablou 1-D, după cum urmează.

Cod:

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

De ce am folosit application.transpose? Deoarece, în general, (1-D) intervalul trebuie să fie orizontal ceea ce înseamnă că un rând are multe coloane. Acum, deoarece avem o gamă verticală aici, în coloana B, care este rezultatul, am folosit această caracteristică de transpunere pentru a o converti într-un tablou 1-D. Am folosit VbTab ca delimitator, astfel încât valorile să fie în celulele următoare.

Pasul 10: Înainte de a încheia bucla for, permiteți-ne să închidem fișierul și apoi să terminăm o buclă după cum urmează.

Codul general arată ca cel de mai jos.

Cod:

 Sub Exemplu2 () Dim FSO Ca Scripting.FileSystemObject Dim St As Scripting.TextStream Dim rw As Range Dim res As String Dim col As Integer Dim FolPath As String Dim Rezultat As String Worksheets ("Sheet2"). Activate col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") și" \ Desktop \ Rezultat "Dacă nu FSO.FolderExists (FolPath) Atunci FSO.CreateFolder FolPath pentru fiecare rw în interval (" A2 ", Range (" A1 "). End (xlDown)) Rezultat = rw.Offset (0, 1). Valor Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Aplicație) .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Următorul rw End Sub 

Pasul 11: Haideți să rulăm codul de mai sus apăsând tasta F5, putem vedea pe desktopul nostru că a fost creat un folder cu numele Rezultatului, așa cum se arată mai jos.

Pasul 12: Deschidem folderul, vom avea trei fișiere ca Pass, Fail și Grace.

Dacă deschidem oricare dintre fișiere, să spunem doar că deschidem fișierul Fail, putem vedea datele pentru studenții care au eșuat.

Lucruri de amintit

  • Este folosit pentru a alătura un tablou de șiruri cu un delimitator comun.
  • Ieșirea returnată de această funcție este String.
  • Este opus funcției Split în VBA.
  • Dacă nu furnizăm un delimitator pentru această funcție, este implicit „spațiu” ca delimitator.
  • Matricea din argument ar trebui să fie un tablou unidimensional. În caz contrar, putem folosi metodele convenționale de aplicare. Transpunem așa cum este explicat în Exemplul 2.

Articole recomandate

Acesta este un ghid pentru funcția VBA Join. Aici vom discuta despre cum să utilizați funcția de alăturare în Excel folosind codul VBA împreună cu exemple practice și șablon excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Funcție Data Excel
  2. Șiruri de concatenare în Excel
  3. Aplicații ale VBA Union
  4. Coloane de concatenare Excel

Categorie: