Excel VBA Deltagefunktion

VBA JOIN-funktion bruges til at sammenføje en række underlag med den specificerede afgrænser. Ligesom ordet i sig selv betyder, at det er nødt til at slutte sig til to eller flere strenge. Nu her er et par fangster med det. Strengene er i en matrix, og den bruger også en afgrænser som sammenføjningsfunktion. Men afgrænseren for sammenføjet funktion kan være forskellig mellem to strenge, fordi vi er nødt til at tilvejebringe en afgrænser mellem hver to strenge ved hjælp af sammenkædefunktionen. Men i Deltag i VBA er vi nødt til at levere afgrænsning kun én gang. Denne afgrænser bruges til hver streng, der skal tilsluttes. Men denne parameter er også valgfri. Så hvad sker der, når vi ikke leverer en afgrænser til funktionen? Når vi ikke leverer nogen afgrænser til funktionen tager det som ”plads” som en afgrænser som standard.

Syntaks for sammenføjningsfunktion i Excel VBA

Deltagefunktion har følgende syntaks i Excel VBA:

Lad os nu forstå argumenterne for VBA Join-funktionen,

  • Kildearray: Det er en matrix eller et sæt strenge, som vi vil sammenføje.
  • Afgrænser: Dette er afgrænseren eller det tegn, vi bruger til at skelne mellem en streng til en anden. En afgrænser kan være mellemrum eller komma eller et stop eller enhver karakter fra vores computer.

Outputet, der returneres af denne funktion, er en streng.

Sådan bruges Excel VBA Join-funktion?

Vi lærer, hvordan man bruger en VBA Join-funktion med et par eksempler i Excel.

Du kan downloade denne VBA Deltag i Excel-skabelon her - VBA Deltag i Excel-skabelon

Excel VBA Join - Eksempel # 1

Lad os først starte med et grundlæggende eksempel. Vi har en sti til en fil, der er gemt i forskellige celler på vores regneark i ark 1. Vi ønsker en samlet sti til det sted i en anden celle. Stien, der skal sammenføjes, er som følger,

Vi vil have stien i celle E2. Følg nedenstående trin for at bruge Deltagefunktion i Excel VBA.

Trin 1: Gå til fanen til udvikleren, og klik derefter på visual basic for at komme ind i VB Editor.

Trin 2: Klik på fanen Indsæt, og indsæt et modul i VBA-projektet.

Trin 3: Lad os nu erklære vores første underprocedure som følger.

Kode:

 Undereksempel () Slut Sub 

Trin 4: Da vi har dataene med os, kan vi blot bruge intervalets egenskabsværdi til at deltage i stien som følger.

Kode:

 Undereksempel () Område ("E2"). Værdi = Slutund 

Trin 5: Brug tilslutningsfunktionen til at sammenføje alle strengene sammen med afgrænseren som “\”.

Kode:

 Undereksempel () Område ("E2"). Værdi = Deltag (Array (Område ("A2"). Værdi, Område ("B2"). Værdi, Område ("C2"). Værdi, Område ("D2") .Value), "\") Slut sub 

Trin 6: Kør ovenstående kode ved at trykke på F5-tasten eller ved at klikke på knappen Play run, så får vi vores resultat i celle E2 som vist nedenfor.

Vi kan se, at alle de fire strenge er forbundet med en fælles afgrænser, der er "\".

Excel VBA Join - Eksempel # 2

Lad os komme videre med et praktisk eksempel. Jeg har studerendes navn, varemærker og bestået eller ikke bestået på et ark. Vi ønsker at oprette en separat mappe med filer, der indeholder, om den studerende har bestået eller ikke bestået eller er blevet præsenteret. Til dette vil vi låne nogle af koncepterne med FSO (File System Objects) ved hjælp af join-funktionen. Dataene ser godt ud som nedenunder.

Følg nedenstående trin for at bruge Deltagefunktion i Excel VBA.

Trin 1: Lad os i det samme modul starte en anden underprocedure som følger.

Kode:

 Subeksempel2 () Slut Sub 

Trin 2: Angiv to variabler som FSO og tekststrøm, som er en metode til FSO som følger.

Kode:

 Dim FSO som nyt scripting. FilSystemObject Dim St As scripting.TextStream 

Trin 3: Lad os nu erklære nogle flere variabler, en som et interval for at holde rækkerne og et andet som heltal til at indeholde kolonnerne, mens en anden som streng for at gemme den tilknyttede strengværdi og mappesti og en for at oprette filnavne.

Kode:

 Dim rw Som rækkevidde Dim res As String Dim col Som heltal Dim FolPath Som streng Dim Resultat Som streng 

Trin 4: Da vi har dataene i ark 2, lad os først aktivere ark 2.

Kode:

 Arbejdsark ( "Ark2"). Activate 

Trin 5: Lad os nu tælle antallet af kolonner, vi har i dataene, som følger,

Kode:

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

Trin 6: Lad os nu tildele en sti til Folpath ved hjælp af informationsfunktionen ENVIRON som følger.

Kode:

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

Trin 7: Lad os nu kontrollere, om mappen findes eller ikke, og hvis den ikke gør det, lad os oprette en ved hjælp af FSO-metoden som følger.

Kode:

 Hvis ikke FSO.FolderExists (FolPath), så FSO.CreateFolder FolPath 

Trin 8: Lad os nu tilføje de navne, der er gemt ved hjælp af offset-funktionen som følger.

Kode:

 For hver rw inden for rækkevidde ("A2", rækkevidde ("A1"). Slut (xlDown)) Resultat = rw.Offset (0, 1). 

Dette åbner filerne med navn samtidigt i tilføjelsestilstand, hvor nyere værdier er den sidste, der tilføjes. Vi har brugt ovenstående kode, så værdien af ​​resultatet tildeles én efter én.

Trin 9: Da Join-funktionen bruger 1-D array, bruger vi application.transpose-funktionen med join-funktionen til at konvertere den i en 1-D-array som følger.

Kode:

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

Hvorfor har vi brugt application.transpose? Fordi array (1-D) generelt skal være vandret, hvilket betyder, at en række har mange kolonner. Da vi nu har et lodret interval her i kolonne B, hvilket er resultatet, har vi brugt denne transponeringsfunktion til at konvertere den til en 1-D array. Vi har brugt VbTab som en afgrænser, så værdierne er i de næste celler.

Trin 10: Før vi afslutter for-loop, lad os lukke filen og derefter afslutte for en loop som følger.

Den samlede kode ser ud som den nedenfor.

Kode:

 Undereksempel2 () Dim FSO Som nyt scripting. FilSystemObjekt Dim St Som scripting.TextStream Dim rw Som rækkevidde Dim res Som streng Dim col Som heltal Dim FolPath Som streng Dim Resultat Som strengværksark ("Ark2"). Aktivér col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Resultat "Hvis ikke FSO.FolderExists (FolPath) Derefter FSO.CreateFolder FolPath for hver rw In Range (" A2 ", Range (" A1 "). Slut (xlDown)) Resultat = rw.Offset (0, 1). Valutasæt St = FSO.OpenTextFile (FolPath &" \ "& Resultat &" .xls ", ForAppending, True) res = Deltag (ansøgning .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Næste rw End Sub 

Trin 11: Lad os nu køre ovenstående kode ved at trykke på F5-tasten. Vi kan se på vores skrivebord, at der er oprettet en mappe med navnet på resultatet som vist nedenfor.

Trin 12: Åbn mappen, vi har tre filer som Pass, Fail og Grace.

Hvis vi åbner en af ​​filerne, så lad os bare sige, at vi åbner Fail-fil, vi kan se dataene for de studerende, der er mislykkedes.

Ting at huske

  • Det bruges til at sammenføje en strenggruppe med en fælles afgrænser.
  • Outputet, der returneres af denne funktion, er streng.
  • Det er modsat Split-funktionen i VBA.
  • Hvis vi ikke leverer en afgrænser til denne funktion, tager den som standard “plads” som en afgrænser.
  • Arrayet i argumentet skal være en endimensional matrix. Hvis ikke kan vi bruge de konventionelle anvendelsesmetoder. Transpose som forklaret i eksempel 2.

Anbefalede artikler

Dette er en guide til VBA Deltagefunktion. Her diskuterer vi, hvordan man bruger Join Function i Excel ved hjælp af VBA-kode sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Excel-datofunktion
  2. Sammenkædede strenge i Excel
  3. Ansøgninger fra VBA Union
  4. Excel-sammenkædningskolonner

Kategori: