VBA pievienoties | Soli pa solim Excel VBA pievienošanās funkcijas piemēri

Līdzīgi tam, kas mums ir darblapā kā funkcija Sasaistīt, un komandai &, kas tiek izmantota, lai savienotu divas vai vairāk nekā divas virknes kopā, VBA mēs to izmantojam, lai to izdarītu, pievienojoties VBA, mēs ņemam datu avotu masīvā un līdzīgi konkatenācijai, mēs pievienojam tiem norobežotāju.

Excel VBA Pievienošanās funkcija

Kā norāda pats nosaukums, funkcija VBA JOIN tiek izmantota, lai savienotu apakšgrupu masīvu ar norādīto atdalītāju. Ja mēs nenorādām nevienu atdalītāju, tad tā kā noklusējuma atdalītāja rakstzīme aizņem “atstarpi”. Tas veic to pašu darbu, ko funkcija “Savienot savienojumu” programmā Excel, izņemot to, ka mums ir jānorāda atdalītāja raksturs tikai vienu reizi, turpretī funkcijai “Savienot savienojumu” mums katru reizi starp divām virknēm ir jānorāda atdalītāja raksturs.

Funkcijas sintakse ir

Kā redzam, funkcija aizņem divus argumentus un atgriež virkni. Argumenti ir:

  1. SourceArray : Mums jāprecizē vai jāsniedz atsauce uz apakšsavienojumu masīvu, kas jāapvieno.
  2. Atdalītājs : Atdalītāju izmanto, lai atdalītu katru apakšvirsrakstu, izveidojot iegūto virkni. Tā kā šis ir neobligāts arguments, ja mēs to izlaižam, norobežotājs tiek iestatīts kā atstarpe.

Funkcija VBA SPLIT ir tieši pretēja funkcijas VBA JOIN funkcijai.

VBA pievienošanās funkcijas piemēri

Tālāk ir norādīti pievienošanās funkcijas piemēri programmā Excel VBA.

Šo VBA Join Function Excel veidni varat lejupielādēt šeit - VBA Join Function Excel Template

VBA pievienošanās - 1. piemērs

Pieņemsim, ka mēs vēlamies pievienoties vārdam (Ramesh), vidējam (Kumar) un uzvārdam (Mishra).

Soļi būtu:

  • Pirmkārt, mums jāatver vizuālais pamata redaktors. Mēs varam darīt to pašu, noklikšķinot uz komandas Visual Basic grupā Code, zem cilnes Developer cilnes Excel, vai arī mēs varam izmantot Excel īsinājumtaustiņu Alt + F11 .

  • Ievietojiet moduli, ar peles labo pogu noklikšķinot uz “1. lapas” un konteksta izvēlnē izvēloties komandu “Ievietot”, pēc tam izvēlieties ievietojamo “Modulis”.

  • Izveidojiet apakšprogrammu ar nosaukumu 'JoiningName'.

Kods:

 Sub JoiningName () Beigas Sub 

  • Izmantojiet funkciju PIEVIENOTIES šādi

Kods:

 Sub JoiningName () diapazons ("D2"). Vērtība = Join (Masīvs ("Ramesh", "Kumar", "Mishra")) Beigas Sub 

Mēs varam redzēt, ka esam izmantojuši funkciju ARRAY, lai nodrošinātu funkciju JOIN SourceArray un izlaistu, lai norādītu atdalītāja rakstzīmi, lai noklusējuma zīme būtu “atstarpe”. Apstrādātā JOIN funkcijas vērtība tiks ierakstīta šūnā D2, kad mēs izpildīsim šo kodu, izmantojot F5 taustiņu vai manuāli.

VBA pievienošanās - 2. piemērs

Pieņemsim, ka mēs vēlamies izveidot dažādus Excel failus ar vienuma nosaukumu, kas satur tikai šī vienuma pārdošanu.

  • Atveriet Visual Basic redaktoru, izmantojot īsinājumtaustiņu Alt + F11.
  • Ar peles labo pogu noklikšķiniet uz lapas "Sheet1" (2. piemērs), lai atvērtu konteksta izvēlni, un noklikšķiniet uz "Insert", lai VBA projektā ievietotu VBA "moduli".

  • Definējiet apakšprogrammu ar nosaukumu 'CreateItemSoldFiles'.

Kods:

 Sub CreateItemSoldFiles () Beigas Sub 

  • Mums ir jāiestata atsauce uz “Microsoft Scripting Runtime” objektu bibliotēku, izmantojot komandu Rīki -> Atsauces ..., jo mēs izmantosim dažus kodus (objektus), kas nedarbosies, ja neiekļausim šo objektu bibliotēku.

  • Tagad mēs deklarēsim visus mainīgos.

Kods:

 Aptumšot FSO kā jaunu skriptu. FileSystemObject

Iepriekš minētais FSO mainīgais dod piekļuvi VBA FileSystemObject. Pēc saistīšanas mēs varam izmantot tādas funkcijas kā BuildPath, CopyFile, CreateTextFile utt.

  • Nākamais paziņojums izveido objektu TextStream. Izmantojot objektu TextStream, mēs varam lasīt no sākotnējā faila vai pievienot tam.

Kods:

 Aptumšot FSO kā jaunu skriptu. FileSystemObject Dim ts kā skriptu. TextStream

  • Mēs paziņosim vairāk mainīgo. 'r' ir domāts rindu turēšanai diapazonā, 'fs' ir galīgo pievienoto virkņu glabāšanai, 'cols' - kolonnu skaita glabāšanai diapazonā, 'FolPath' mapes ceļa saglabāšanai, lai mēs varētu saglabāt failus mapē un 'Items_Sold' dažādu vienību nosaukumu glabāšanai, lai izveidotu failu ar šiem nosaukumiem.

Kods:

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

  • Lai uzskaitītu kopējo kolonnu skaitu diapazonā, mēs definēsim šādu paziņojumu.

Kods:

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

Šis paziņojums vispirms atlasīs pašreizējo šūnas A1 reģionu un pēc tam uzskaitīs kopējo kolonnu skaitu pašreizējā reģionā.

  • Mēs rakstīsim šādus apgalvojumus, lai piešķirtu mainīgajam “FolPath” ceļu, izmantojot funkciju VBA ENVIRON un apvienošanas operatoru.

Kods:

FolPath = Environ ("UserProfile") & "\ Desktop \ Items_Sold" Ja nav FSO.FolderExists (FolPath), tad FSO.CreateFolder FolPath

Otrais paziņojums izveidos mapi, ja mape nepastāv tajā pašā vietā.

  • Šis kods piešķirs B kolonnas vērtības pa vienai 'Items_Sold'. Mēs izmantojām funkciju 'OFFSET', lai iegūtu B atsauces šūnas atsauci, jo pašlaik atlasītā šūna atrodas A slejā.

Kods:

Items_Sold = r. Ofsets (0, 1). Vērtība

  • Ar šo apmales paziņojumu faili ar nosaukumiem, kas saglabāti mainīgajā “Items_Sold”, tiks atvērti pa vienam pievienošanas režīmā (jaunās vērtības tiks pievienotas beidzot).

Kods:

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

Mēs esam izmantojuši operatoru Concatenate ar mainīgajiem lielumiem “FolPath” un “Items_Sold” un statiskām vērtībām (“\” un ”.xls”), lai izveidotu failu nosaukumus Excel failiem.

  • Mums jāpatur prātā, ka funkcijai VBA JOIN tiek izmantots tikai viendimensiju masīvs kā SourceArray. Lai rindas pārveidotu par viendimensiju masīvu, divas reizes jāizmanto metode Application.Transpose.

Kods:

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

Mēs esam izmantojuši diapazona objekta Resize metodi, lai mainītu diapazonu līdz virknes kolonnu platumam.

Kā norobežotājs mēs izmantojām atslēgvārdu “vbTab”, lai vērtības tiktu aizpildītas dažādās šūnās.

  • Tā kā funkcijas JOIN apstrādātā vērtība ir saglabāta mainīgajā 'fs', mēs ierakstīsim fs vērtības jaunās VBA izveidoto Excel failu rindās katrai mūsu sākotnējā faila rindai no 2. rindas līdz pēdējai rindai (mūsu gadījumā tas ir ir 350. rinda).

  • Pirms cikla beigām mēs aizvērsim atvērto failu. Kods būtu tāds, kā parādīts ekrānuzņēmumā.

Tagad mēs esam uzrakstījuši pilnu kodu.

Kods:

Sub CreateItemSoldFiles () Dim FSO kā jaunu skriptu.FileSystemObject Dim ts kā skriptu.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" Ja nav FSO.FolderExists (FolPath), tad FSO.CreateFolder FolPath katram diapazona diapazonam ("A2", diapazons ("A1"). Beigas (xlDown) ) Items_Sold = r.Offset (0, 1). Vērtības kopa ts = FSO.OpenTextFile (FolPath & "\" & Items_Sold & ".xls", ForAppending, True) fs = Pievienoties (Application.Transpose (Application.Transpose (r) . Resize (1, cols). Value)), vbTab) ts. WriteLine fs ts. Aizvērt nākamo r End Sub

Tagad, lai izpildītu kodu, mēs nospiedīsim F5, tad redzēsim, ka ar darbvirsmas VBA koda palīdzību ir izveidota mape ar nosaukumu 'Items_Sold'.

Mapē ir izveidoti 7 unikāli faili ar vienuma nosaukumiem, un mēs varam uzzināt informāciju par failiem tikai par šo konkrēto vienumu.

Klēpjdators.xls

Lietas, kas jāatceras par funkciju VBA JOIN

  • SourceArray jābūt viendimensijas masīvs. Mēs nevaram atsaukties uz atsevišķu šūnu, jo tādējādi tiks izveidoti vairāki daudzdimensiju bloki.
  • Ja kā atdalītāju norādām nulles garuma virkni (“”), visi masīva vienumi tiek apvienoti bez atdalītājiem.

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