VBA Liitu | Exceli VBA liitumisfunktsiooni üksikasjalikud näited

Sarnaselt sellele, mis meil on töölehel funktsiooni Liitmine ja käsuga &, mida kasutatakse kahe või enama kui kahe stringi ühendamiseks, kasutame VBA-s selleks käsku Liitumine VBA-s võtame massiivi andmete allika ja sarnaselt liitumisele kasutame nende liitmiseks eraldajat.

Exceli VBA JOIN funktsioon

Nagu nimigi ütleb, kasutatakse funktsiooni VBA JOIN, et ühendada määratud eraldajaga alamstringide massiiv. Kui me ei määra eraldajat, võtab see vaikimisi eraldusmärgina "tühiku". See teeb sama tööd nagu funktsioon Liitmine Excelis, välja arvatud see, et eraldusmärki peame määrama ainult ühe korra, samas kui funktsioonis Liitumine peame iga kahe stringi vahel iga kord eraldaja märgi määrama.

Funktsiooni süntaks on

Nagu näeme, võtab funktsioon kaks argumenti ja tagastab stringi. Argumendid on järgmised:

  1. SourceArray : peame määrama liidetavate alamstringide massiivi või viitama sellele.
  2. Eraldaja : eraldajat kasutatakse tulemuste stringi loomisel iga alamstringi eraldamiseks. Kuna see on valikuline argument, määratakse eraldaja, kui selle välja jätta, tühik "".

Funktsioon VBA SPLIT on funktsiooni VBA JOIN täiesti vastupidine funktsioon.

VBA liitumisfunktsiooni näited

Allpool on toodud Exceli VBA liitumisfunktsiooni näited.

Selle VBA Join Function Exceli malli saate alla laadida siit - VBA Join Function Exceli mall

VBA liitumine - näide 1

Oletame, et me tahame liituda ees- (Ramesh), keskmise (Kumar) ja perekonnanimega (Mishra).

Sammud oleksid:

  • Esiteks peame avama visuaalse põhiredaktori. Saame teha sama, kui klõpsate vahekaardi „Arendaja” all olevas rühmas „Kood” käsku „Visual Basic” või võime kasutada Exceli kiirklahvi Alt + F11 .

  • Sisestage moodul, paremklõpsates lehel 1 ja tehes kontekstimenüüst käsu 'Lisa', seejärel valige lisamiseks 'Moodul'.

  • Looge alamprogramm nimega 'JoiningName'.

Kood:

 Alam Liitumisnimi () Lõpeta alam 

  • Kasutage funktsiooni JOIN järgmiselt

Kood:

 Sub JoiningName () vahemik ("D2"). Väärtus = Join (massiiv ("Ramesh", "Kumar", "Mishra")) Lõpp alam 

Näeme, et oleme funktsiooni JOIN pakkumiseks SourceArray pakkunud funktsiooni ARRAY ja eraldaja märgi määramiseks jätsime vahele, nii et vaiketäheks oleks „tühik”. Funktsiooni JOIN töödeldud väärtus kirjutatakse lahtrisse D2, kui täidame selle koodi klahvi F5 abil või käsitsi.

VBA liitumine - näide 2

Oletame, et tahame luua mitmesuguseid Exceli faile, mille üksuse nimi sisaldab ainult selle üksuse müüki.

  • Avage Visual Basic Editor, kasutades kiirklahvi Alt + F11.
  • Kontekstimenüü avamiseks paremklõpsake lehel 'Sheet1' (näide 2) ja klõpsake nuppu 'Insert', et lisada VBA 'moodul' VBA projekti.

  • Määrake alamprogramm nimega 'CreateItemSoldFiles'.

Kood:

 Sub CreateItemSoldFiles () Lõpeta alam 

  • Peame määrama käsu Tööriistad -> Viited ... viite objektikogule „Microsoft Scripting Runtime”, kuna kasutame mõnda koodi (objekte), mis ei toimi, kui me seda objektide teeki ei kaasata.

  • Nüüd deklareerime kõik muutujad.

Kood:

 Hämarda FSO uue skriptina. FileSystemObject

Ülaltoodud FSO muutuja annab juurdepääsu VBA FileSystemObjectile. Pärast sidumist saame kasutada selliseid funktsioone nagu BuildPath, CopyFile, CreateTextFile jne.

  • Järgmine lause loob objekti TextStream. Objekti TextStream kaudu saame lugeda algsest failist või sellele lisada.

Kood:

 Dim FSO kui uus skriptimine. FileSystemObject Dim ts kui skriptimine. TextStream

  • Deklareerime rohkem muutujaid. 'r' on vahemiku ridade hoidmiseks, 'fs' on lõpliku ühendatud stringi salvestamiseks, 'cols' vahemiku veergude arvu hoidmiseks, 'FolPath' kausta tee salvestamiseks, et saaksime failid salvestada kaustas ja üksused_Müüdud mitmesuguste üksuste nimede salvestamiseks, et luua nende nimedega fail.

Kood:

 Dim r As Range Dim fs As String Dim cols As Integer Dim FolPath As String Hämardavad üksused_Müüdud stringidena 

  • Vahemikus olevate veergude koguarvu lugemiseks määratleme järgmise lause.

Kood:

cols = vahemik ("A1"). CurrentRegion.Columns.Count

See lause valib kõigepealt lahtrile A1 praeguse piirkonna ja loendab seejärel praeguse piirkonna veergude koguarvu.

  • Kirjutame muutujale „FolPath” tee määramiseks järgmised väited, kasutades funktsiooni VBA ENVIRON ja liitumisoperaatorit.

Kood:

FolPath = Environ ("UserProfile") & "\ Desktop \ Items_Sold" Kui pole FSO.FolderExists (FolPath), siis FSO.CreateFolder FolPath

Teise väitega luuakse kaust, kui kausta ei ole samas asukohas.

  • See kood määrab veeru B väärtused ükshaaval jaotisele 'Üksused_müüdud'. Oleme kasutanud funktsiooni OFFSET, et saada lahtris viide veerus B, kuna parajasti valitud lahter asub veerus A.

Kood:

Kirjed_Müüdud = r. Offset (0, 1). Väärtus

  • Järgmine ääristatud lause avab muutuvas 'Items_Sold' failides olevad failid ükshaaval lisamisrežiimis (uued väärtused lisatakse lõpuks).

Kood:

 Määra ts = FSO.OpenTextFile (FolPath & "\" & Items_Sold & ".xls", ForAppending, True)

Exceli failide nimede loomiseks oleme kasutanud muutujate „FolPath” ja „Items_Sold” ning staatiliste väärtustega (“\” ja ”.xls”) liitjat.

  • Peame meeles pidama, et funktsioon VBA JOIN võtab SourceArrayna ainult ühemõõtmelise massiivi. Ridade ühemõõtmeliseks massiiviks teisendamiseks peame meetodit Application.Transpose kasutama kaks korda.

Kood:

fs = Liitu (Application.Transpose (Application.Transpose (r.Resize (1, cols) .Value)), vbTab)

Oleme vahemiku suuruse muutmiseks vahemikus olevate veergude laiuseks muutnud objekti Resize meetodit.

Piirajana oleme kasutanud märksõna „vbTab”, et väärtused täidetaks erinevates lahtrites.

  • Kuna oleme funktsiooni JOIN töödeldud väärtuse muutnud 'fs', kirjutame fs väärtused VBA loodud Exceli failide uutele ridadele iga meie algse faili rea jaoks alates reast 2 kuni viimase reani (meie puhul on see on 350. rida).

  • Enne tsükli lõpetamist sulgeme avatud faili. Kood oleks ekraanipildil näidatud.

Oleme nüüd kogu koodi kirjutanud.

Kood:

Sub CreateItemSoldFiles () Dim FSO uue skriptina.FileSystemObject Dim ts As Scripting.TextStream Dim r As Range Dim fs String Dim cols As Integer Dim FolPath As String Dim Items_Sold As String cols = Range ("A1"). CurrentRegion.Columns. Count FolPath = Environ ("UserProfile") & "\ Desktop \ Items_Sold" Kui pole FSO.FolderExists (FolPath), siis FSO.CreateFolder FolPath iga vahemikus oleva rühma kohta ("A2", Range ("A1"). Lõpp (xlDown) ) Items_Sold = r.Offset (0, 1). Väärtus Set ts = FSO.OpenTextFile (FolPath & "\" & Items_Sold & ".xls", ForAppending, True) fs = Liitu (Application.Transpose (Application.Transpose (r) . Suuruse muutmine (1, veerud). Väärtus)), vbTab) ts. WriteLine fs ts. Sule järgmine r End Sub

Nüüd koodi täitmiseks vajutame seejärel klahvi F5, näeme, et töölauale VBA koodi abil on loodud kaust nimega 'Items_Sold'.

Kaustas on 7 unikaalset faili, mis on loodud üksuse nimedega ja saame teada üksikasju ainult selle konkreetse üksuse kohta failides.

Sülearvuti.xls

Mida meeles pidada VBA JOIN funktsiooni kohta

  • SourceArray peab olema ühemõõtmeline massiiv. Me ei saa viidata üksikule lahtrile, kuna see loob mitu mitmemõõtmelist massiivi.
  • Kui määrame eraldajana nullpikkuse stringi (“”), siis liidetakse kõik massiivi üksused eraldajateta.

$config[zx-auto] not found$config[zx-overlay] not found