VBA prisijungti | Žingsnis po žingsnio „Excel VBA“ prisijungimo funkcijos pavyzdžiai

Panašiai kaip tai, ką turime darbalapyje kaip „Concatenate“ funkciją ir komandą &, kuri naudojama sujungiant dvi ar daugiau nei dvi eilutes, VBA mes naudojame komandą „Join“, kad tai padarytume, o „Join in VBA“ mes imame duomenų šaltinį iš masyvo ir panašiai kaip sujungimas, mes naudojame juos atskirti.

„Excel VBA JOIN“ funkcija

Kaip rodo pats pavadinimas, VBA JOIN funkcija naudojama subpozicijų masyvo sujungimui su nurodytu skirikliu. Jei nenurodome jokio skiriamojo elemento, tada jis naudoja „tarpą“ kaip numatytąjį skiriamąjį simbolį. Tai atlieka tą patį darbą, kaip ir „Concatenate“ funkcija „Excel“, išskyrus tai, kad skiriamąjį simbolį turime nurodyti tik vieną kartą, o funkcijoje „Concatenate“ - kiekvieną kartą tarp dviejų eilučių turime nurodyti skiriamąjį simbolį.

Funkcijos sintaksė yra

Kaip matome, funkcija užima du argumentus ir pateikia eilutę. Argumentai yra:

  1. SourceArray : Turime nurodyti arba pateikti nuorodą į substrings masyvą, kuris bus sujungtas.
  2. Skiriklis : skiriamasis elementas naudojamas atskirti kiekvieną poskyrį kuriant gautą eilutę. Kadangi tai yra neprivalomas argumentas, jei jo nepaisysime, skiriamasis elementas yra tarpas ““.

VBA SPLIT funkcija yra visiškai priešinga funkcijos VBA JOIN funkcijai.

VBA prisijungimo funkcijos pavyzdžiai

Žemiau pateikiami „Excel VBA“ prisijungimo funkcijos pavyzdžiai.

Šį „VBA Join Function Excel“ šabloną galite atsisiųsti čia - „VBA Join Function Excel“ šablonas

VBA prisijungimas - 1 pavyzdys

Tarkime, mes norime prisijungti prie vardo (Ramesh), vidurio (Kumar) ir pavardės (Mishra).

Žingsniai būtų:

  • Pirmiausia turime atidaryti vizualinį pagrindinį redaktorių. Tą patį galime padaryti spustelėję komandą „Visual Basic“ grupėje „Kodas“, esančioje skirtuke „Kūrėjas“, arba galime naudoti „Excel“ spartųjį klavišą Alt + F11 .

  • Įdėkite modulį dešiniuoju pelės klavišu spustelėdami „1 lapą“ ir kontekstiniame meniu pasirinkdami komandą „Įterpti“, tada pasirinkite „Modulis“, kurį norite įterpti.

  • Sukurkite paprogramę pavadinimu „JoiningName“.

Kodas:

 Sub JoiningName () Pabaiga Sub 

  • JUNKITE funkciją naudokite taip

Kodas:

 Sub JoiningName () diapazonas ("D2"). Reikšmė = Join (masyvas ("Ramesh", "Kumar", "Mishra")) Pabaiga Sub 

Mes galime pamatyti, kad mes naudojome ARRAY funkciją, norėdami suteikti SourceArray funkcijai JOIN, ir praleidome nurodydami skiriamąjį simbolį, taigi „tarpas“ būtų numatytasis simbolis. Apdorota funkcijos JOIN vertė bus įrašyta D2 langelyje, kai šį kodą vykdysime naudodami F5 klavišą arba rankiniu būdu.

VBA prisijungimas - 2 pavyzdys

Tarkime, mes norime sukurti įvairius „Excel“ failus su prekės pavadinimu, kuriame yra tik tos prekės pardavimai.

  • Atidarykite „Visual Basic“ redaktorių naudodami spartųjį klavišą „Alt + F11“.
  • Dešiniuoju pelės mygtuku spustelėkite „Sheet1 ′ (2 pavyzdys)“ lapą, kad atidarytumėte kontekstinį meniu, ir spustelėkite „Insert“, jei norite įterpti VBA „modulį“ į VBA projektą.

  • Apibrėžkite paprogramę pavadinimu „CreateItemSoldFiles“.

Kodas:

 Sub CreateItemSoldFiles () Pabaiga Sub 

  • Turime nustatyti nuorodą į „Microsoft Scripting Runtime“ objektų biblioteką naudodami komandą Įrankiai -> Nuorodos ..., nes naudosime tam tikrą kodą (objektus), kurie neveiks, jei neįtrauksime šios objektų bibliotekos.

  • Dabar mes deklaruosime visus kintamuosius.

Kodas:

 Tamsinti FSO kaip naują scenarijų. FileSystemObject

Aukščiau pateiktas FSO kintamasis suteikia prieigą prie VBA FileSystemObject. Susieję galime naudoti tokias funkcijas kaip „BuildPath“, „CopyFile“, „CreateTextFile“ ir kt.

  • Kitas sakinys sukuria „TextStream“ objektą. Per „TextStream“ objektą galime skaityti iš pirminio failo arba jį pridėti.

Kodas:

 „Dim FSO“ kaip naujas scenarijus. „FileSystemObject“ „Dim ts“ kaip scenarijus. „TextStream“

  • Deklaruosime daugiau kintamųjų. „r“ skirtas eilutėms diapazone laikyti, „fs“ - paskutinėms sujungtoms eilutėms laikyti, „cols“ - diapazono stulpelių skaičiui, „FolPath“ - aplanko keliams saugoti, kad galėtume išsaugoti failus aplanke ir „Items_Sold“, skirtą saugoti įvairius elementų pavadinimus, kad būtų sukurtas failas su šiais pavadinimais.

Kodas:

 „Dim r As Range“ Dim fs As String Dim cols As Integer Dim FolPath As String Dim Items_Sold as String 

  • Norėdami suskaičiuoti bendrą diapazono stulpelių skaičių, apibrėžsime šį teiginį.

Kodas:

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

Šis teiginys pirmiausia parinks dabartinį langelio A1 regioną ir paskaičiuos bendrą dabartinio regiono stulpelių skaičių.

  • Parašysime šiuos teiginius, kaip priskirti kintamajam „FolPath“ kelią, naudojant funkciją VBA ENVIRON ir sujungimo operatorių.

Kodas:

FolPath = Aplinka ("UserProfile") & "\ Desktop \ Items_Sold" Jei ne FSO.FolderExists (FolPath) Tada FSO.CreateFolder FolPath

Antrasis teiginys sukurs aplanką, jei aplanko nėra toje pačioje vietoje.

  • Šis kodas priskirs B stulpelio reikšmes po vieną „Items_Sold“. Mes naudojome funkciją „OFFSET“, kad gautume B stulpelio langelio nuorodą, nes šiuo metu pasirinkta langelis yra A stulpelyje.

Kodas:

Daiktai_Parduota = r. Ofsetas (0, 1). Vertė

  • Šis kraštuotas sakinys atidarys failus su pavadinimais, saugomais kintamajame „Items_Sold“, vienas po kito pridedant režimą (naujos vertės bus pridėtos pagaliau).

Kodas:

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

Norėdami sukurti „Excel“ failų pavadinimus, naudojome operatorių „Concatenate“ su kintamaisiais „FolPath“ ir „Items_Sold“ bei statinėmis reikšmėmis („\“ ir „.xls“).

  • Turime nepamiršti, kad funkcija VBA JOIN naudoja tik vienos dimensijos masyvą kaip „SourceArray“. Norėdami eilutes konvertuoti į vienmatę masyvą, turime naudoti „Application.Transpose“ metodą du kartus.

Kodas:

fs = Prisijungti (taikymas. Perkelti (taikymas. Perkelti (r.Resize (1, stulpeliai) .Vertybė)), vbTab)

Norėdami pakeisti diapazono dydį iki diapazono stulpelių skaičiaus, naudojome objekto „Resize“ metodo keitimo metodą.

Kaip skiriklį naudojome raktinį žodį „vbTab“, kad reikšmės būtų užpildytos skirtingose ​​ląstelėse.

  • Kadangi apdorotą funkcijos JOIN vertę įrašėme į „fs“ kintamąjį, fs reikšmes įrašysime į naujas VBA sukurtų „Excel“ failų eilutes kiekvienai mūsų pirminio failo eilutei nuo 2 eilutės iki paskutinės eilutės (mūsų atveju tai yra 350-oji eilutė).

  • Prieš baigdami kilpą, uždarysime atidarytą failą. Kodas bus toks, koks parodytas ekrano kopijoje.

Dabar parašėme visą kodą.

Kodas:

Sub CreateItemSoldFiles () pritemdyti FSO kaip naują scenarijų.FileSystemObject Dim ts kaip scenarijus.TextStream Dim r As Range Dim fs As 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" Jei ne FSO.FolderExists (FolPath) Tada FSO.CreateFolder FolPath kiekvienam diapazone esančiam r ("A2", diapazonas ("A1"). Pabaiga (xlDown) ) Items_Sold = r.Offset (0, 1). Vertės nustatymas ts = FSO.OpenTextFile (FolPath & "\" & Items_Sold & ".xls", ForAppending, True) fs = Prisijungti (Application.Transpose (Application.Transpose (r) .Resize (1, cols) .Value)), vbTab) ts. WriteLine fs ts. Uždaryti Kitas r End Sub

Dabar, norėdami įvykdyti kodą, paspausime F5, tada galime pamatyti, kad aplankas pavadinimu „Items_Sold“ buvo sukurtas naudojant VBA kodą darbalaukyje.

Aplanke yra 7 unikalūs failai, sukurti su elemento pavadinimais ir mes galime sužinoti išsamią informaciją tik apie tą konkretų failų elementą.

Nešiojamas kompiuteris.xls

Dalykai, kuriuos reikia atsiminti apie VBA JOIN funkciją

  • SourceArray“ turi būti vienmatis masyvas. Negalime nurodyti atskiros ląstelės, nes taip bus sukurtos kelios daugialypės masyvai.
  • Jei kaip skiriklį nurodysime nulio ilgio eilutę („“), visi masyvo elementai sujungiami be atribotojų.

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