Funkcia Excel VBA Join

Funkcia VBA JOIN sa používa na spojenie súboru podreťazcov so zadaným oddeľovačom. Rovnako ako samotné slovo znamená, že sa musí spojiť dva alebo viac reťazcov. Teraz je tu niekoľko úlovkov. Reťazce sú v poli a ako zreťazená funkcia tiež používa oddeľovač. Oddeľovač pre zreťazenú funkciu sa však môže medzi akýmikoľvek dvoma reťazcami líšiť, pretože pomocou zreťazenej funkcie musíme medzi každým dvoma reťazcami poskytnúť jeden oddeľovač. Ale v Pripojiť sa k VBA musíme poskytnúť oddeľovač iba raz. Tento oddeľovač sa používa pre každý reťazec, ktorý sa má pripojiť. Tento parameter je však voliteľný. Čo sa stane, keď funkciu nezaručíme? Ak pre funkciu neposkytujeme žiadny oddeľovač, v predvolenom nastavení zaberie medzera ako oddeľovač medzeru.

Syntax funkcie spojenia v aplikácii Excel VBA

Funkcia spojenia má nasledujúcu syntax v programe Excel VBA:

Teraz pochopme argumenty funkcie VBA Join,

  • Source Array: Je to pole alebo skupina reťazcov, ktoré chceme spojiť.
  • Oddeľovač: Toto je oddeľovač alebo znak, ktorý používame na rozlíšenie medzi jednotlivými reťazcami. Oddeľovač môže byť medzera alebo čiarka alebo bodka alebo ľubovoľný znak z nášho počítača.

Výstup vrátený touto funkciou je reťazec.

Ako používať funkciu Excel VBA Join?

Naučíme sa, ako používať funkciu VBA Join, s niekoľkými príkladmi v Exceli.

Túto šablónu VBA Pripojte sa k Excelu si môžete stiahnuť tu - VBA Pripojiť sa k Excel Excel

Pripojiť Excel VBA - Príklad č. 1

Najprv začnime základným príkladom. Máme cestu k súboru uloženému v rôznych bunkách nášho pracovného listu v hárku 1. Chceme úplnú cestu k tomuto umiestneniu v inej bunke. Cesta, ktorú je potrebné spojiť, je nasledujúca,

Chceme cestu v bunke E2. Ak chcete použiť funkciu spojenia v aplikácii Excel VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Prejdite na kartu vývojára a potom kliknite na Visual Basic, aby ste sa dostali do editora VB.

Krok 2: Kliknite na kartu Vložiť a vložte modul do projektu VBA.

Krok 3: Teraz vyhlásime náš prvý podprogram nasledovne.

kód:

 Čiastkový príklad () Koniec č 

Krok 4: Pretože s nami máme údaje, môžeme jednoducho použiť hodnotu vlastnosti range na pripojenie sa k ceste nasledujúcim spôsobom.

kód:

 Príklad príkladu () Rozsah ("E2"). Hodnota = Koniec 

Krok 5: Pomocou funkcie Pripojiť spojte všetky reťazce spolu s oddeľovačom ako „\“.

kód:

 Príklad príkladu () Rozsah („E2“). Hodnota = Spojenie (Pole (Rozsah („A2“).) Hodnota, Rozsah („B2“). Hodnota, Rozsah („C2“). Hodnota, Rozsah („D2“) .Hodnota), "\") Koniec sub 

Krok 6: Spustite vyššie uvedený kód stlačením klávesu F5 alebo kliknutím na tlačidlo Spustiť prehrávanie a náš výsledok bude v bunke E2, ako je uvedené nižšie.

Vidíme, že všetky štyri reťazce sú spojené spolu so spoločným oddeľovačom, ktorým je „\“.

Pripojte sa k aplikácii Excel VBA - Príklad č. 2

Poďme ďalej s praktickým príkladom. Na jednom hárku mám meno študenta, známky a priechod alebo zlyhanie. Chceme vytvoriť samostatný priečinok so súbormi, v ktorých bude uvedené, či študent prešiel, zlyhal alebo bol vyzdobený. Za týmto účelom si požičíme niektoré koncepty FSO (Object System Objects) pomocou funkcie join. Dáta vyzerajú tak, ako sú uvedené nižšie.

Ak chcete použiť funkciu spojenia v aplikácii Excel VBA, postupujte podľa nasledujúcich krokov.

Krok 1: V rovnakom module začnime ďalší podprogram nasledovne.

kód:

 Príklad 2 () Koniec sub 

Krok 2: Vyhláste dve premenné ako FSO a textstream, čo je metóda FSO nasledovne.

kód:

 Dim FSO ako nové skriptovanie.FileSystemObject Dim St as Scripting.TextStream 

Krok 3: Teraz deklarujme niektoré ďalšie premenné, jednu ako rozsah na držanie riadkov a druhú ako celé na držanie stĺpcov, zatiaľ čo inú ako String na uloženie hodnoty spojeného reťazca a cestu k priečinku a druhú na vytvorenie názvov súborov.

kód:

 Dim rw As Range Dim res As String Dim Col As Integer Dim FolPath As String Dim Výsledok ako String 

Krok 4: Keďže máme údaje v hárku 2, aktivujte hárok 2 ako prvý.

kód:

 Listy ( "Hárok2"). Activate 

Krok 5: Teraz vypočítajme počet stĺpcov v údajoch nasledovne,

kód:

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

Krok 6: Teraz priradme cestu k Folpathu pomocou informačnej funkcie ENVIRON nasledovne.

kód:

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

Krok 7: Teraz skontrolujte, či priečinok existuje alebo nie a ak nie, potom ho vytvorte pomocou metódy FSO nasledujúcim spôsobom.

kód:

 Ak nie je FSO.FolderExists (FolPath), potom FSO.CreateFolder FolPath 

Krok 8: Teraz pripojme mená uložené pomocou funkcie offset nasledovne.

kód:

 Pre každú rw In Range ("A2", Range ("A1"). End (xlDown)) Výsledok = rw.Offset (0, 1) .Hodnota 

Tým sa súčasne otvoria súbory s menami v pripojenom režime, kde novšie hodnoty budú posledné. Vyššie uvedený kód sme použili tak, aby hodnota výsledku bola priradená jeden po druhom.

Krok 9: Teraz, keď funkcia Join používa 1-D pole, použijeme funkciu application.transpose s funkciou join na jeho prevod v 1-D poli nasledujúcim spôsobom.

kód:

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

Prečo sme použili application.transpose? Pretože vo všeobecnosti pole (1-D) musí byť horizontálne, čo znamená, že jeden riadok má veľa stĺpcov. Teraz, keď máme v stĺpci B vertikálny rozsah, ktorý je výsledkom, použili sme túto funkciu transpozície na jej prevod do poľa 1-D. Ako oddeľovač sme použili VbTab, takže hodnoty sú v ďalších bunkách.

Krok 10: Pred ukončením cyklu for, zatvorte súbor a potom pre cyklus nasledujúcim spôsobom.

Celkový kód vyzerá takto.

kód:

 Čiastkový príklad2 () Dim FSO ako nové skriptovanie.FileSystemObject Dim St as Scripting.TextStream Dim rw As Range Dim res As String Dim Col As Integer Dim FolPath As String Dim Výsledok ako String Worksheet ("Sheet2"). Aktivujte col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Result "Ak nie FSO.FolderExists (FolPath), potom FSO.CreateFolder FolPath pre každú oblasť v rozsahu (" A2 ", Range (" A1 "). Koniec (xlDown)) Výsledok = rw.Offset (0, 1) .Value Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Application) .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Next rw End Sub Sub 

Krok 11: Teraz spustime vyššie uvedený kód stlačením klávesu F5, na našej pracovnej ploche vidíme, že bol vytvorený priečinok s názvom Výsledok, ako je uvedené nižšie.

Krok 12: Otvorte priečinok, ktorý bude mať tri súbory ako Pass, Fail a Grace.

Ak otvoríme niektorý zo súborov, povedzme, že otvoríme súbor Fail, aby sme videli údaje o neúspešných študentov.

Čo je potrebné pamätať

  • Používa sa na spojenie reťazcového poľa so spoločným oddeľovačom.
  • Výstupom tejto funkcie je String.
  • Je to oproti funkcii Split vo VBA.
  • Ak pre túto funkciu neposkytneme oddeľovač, v predvolenom nastavení zaberie medzeru ako oddeľovač.
  • Pole v argumente by malo byť jednorozmerné pole. Ak nie, môžeme použiť konvenčné spôsoby aplikácie.

Odporúčané články

Toto je sprievodca funkciou VBA Join. Tu diskutujeme o tom, ako používať funkciu Spojiť v Exceli pomocou kódu VBA spolu s praktickými príkladmi a šablónou programu Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Excel Dátum Funkcia
  2. Zreťazené reťazce v Exceli
  3. Aplikácie únie VBA
  4. Zlučovacie stĺpce programu Excel

Kategórie: