Excel VBA Delta-funksjon

VBA JOIN-funksjonen brukes til å slå sammen en rekke underlag med den spesifiserte avgrenseren. Akkurat som ordet i seg selv betyr at det trenger å bli med i to eller flere strenger. Nå er noen få fangster med det. Strengene er i en matrise, og den bruker også en avgrenser som samkjøringsfunksjon. Men avgrenseren for sammenkoblet funksjon kan være forskjellig mellom to strenger fordi vi trenger å skaffe en avgrenser mellom hver to strenger ved å bruke sammenslåttfunksjonen. Men i Delta i VBA trenger vi bare å skaffe avgrensning. Denne avgrenseren brukes for hver streng å bli med. Men denne parameteren er også valgfri. Så hva skjer når vi ikke gir en avgrenser til funksjonen? Når vi ikke gir noen avgrenser til funksjonen tar den som standard "plass" som en avgrenser.

Syntax of Join-funksjon i Excel VBA

Bli med-funksjonen har følgende syntaks i Excel VBA:

La oss nå forstå argumentene for VBA Join-funksjonen,

  • Source Array: Det er et utvalg eller sett med strenger som vi ønsker å slå sammen.
  • Avgrenser: Dette er avgrenseren eller tegnet vi bruker for å skille mellom en streng til en annen. En avgrenser kan være mellomrom eller komma eller full stopp eller hvilken som helst karakter fra datamaskinen vår.

Utdataene som returneres av denne funksjonen er en streng.

Hvordan bruker jeg Excel VBA Join-funksjon?

Vi lærer hvordan du bruker en VBA Join-funksjon med noen få eksempler i Excel.

Du kan laste ned denne VBA Bli med i Excel-mal her - VBA Bli med i Excel-mal

Excel VBA Join - Eksempel # 1

La oss først starte med et grunnleggende eksempel. Vi har en bane til en fil som er lagret i forskjellige celler i arbeidsarket i ark 1. Vi vil ha en total bane til det stedet i en annen celle. Stien som må kobles sammen er som følger,

Vi vil ha banen i celle E2. Følg trinnene nedenfor for å bruke Bli med-funksjon i Excel VBA.

Trinn 1: Gå til fanen til utvikleren og klikk deretter på visual basic for å komme inn i VB Editor.

Trinn 2: Klikk på insert-fanen og sett inn en modul i VBA-prosjektet.

Trinn 3: La oss nå erklære vår første underprosess som følger.

Kode:

 Subeksempel () Slutt Sub 

Trinn 4: Siden vi har dataene med oss, kan vi ganske enkelt bruke egenskapens verdi for å bli med på banen som følger.

Kode:

 Undereksempel () Område ("E2"). Verdi = Slutt sub 

Trinn 5: Bruk Join-funksjonen for å koble alle strengene sammen med avgrenseren som “\”.

Kode:

 Undereksempel () Område ("E2"). Verdi = Bli med (Array (Område ("A2"). Verdi, Område ("B2"). Verdi, Område ("C2"). Verdi, Område ("D2") .Value), "\") Slutt sub 

Trinn 6: Kjør koden ovenfor ved å trykke på F5-tasten eller ved å klikke på Play-run-knappen, så får vi resultatet i celle E2 som vist nedenfor.

Vi kan se at alle de fire strengene er forbundet med en felles avgrenser som er "\".

Excel VBA Join - Eksempel # 2

La oss komme videre med et praktisk eksempel. Jeg har studentens navn, karakterer og bestått eller ikke bestått på ett ark. Vi ønsker å lage en egen mappe med filer som inneholder enten studenten har bestått eller mislyktes eller blitt pratet. For dette vil vi låne noen av konseptene til FSO (File System Objects) ved å bruke join-funksjonen. Dataene ser ut som nedenfor.

Følg trinnene nedenfor for å bruke Bli med-funksjon i Excel VBA.

Trinn 1: I den samme modulen, la oss starte en annen delprosess som følger.

Kode:

 Subeksempel2 () Slutt Sub 

Trinn 2: Angi to variabler som FSO og tekststrøm som er en metode for FSO som følger.

Kode:

 Dim FSO As New Scripting. FilSystemObject Dim St As Scripting.TextStream 

Trinn 3: La oss nå erklære noen flere variabler, en som et område for å holde radene og en annen som heltall for å holde kolonnene, mens en annen som streng for å lagre den tilknyttede strengverdien og mappe banen og en for å opprette filnavnene.

Kode:

 Dim rw Som Range Dim res As String Dim col Som Integer Dim FolPath Som Streng Dim Resultat Som String 

Trinn 4: Siden vi har dataene i ark 2, la oss aktivere ark 2 først.

Kode:

 Regneark ( "Ark2"). Activate 

Trinn 5: La oss nå telle antall kolonner vi har i dataene som følger,

Kode:

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

Trinn 6: La oss nå tilordne en sti til Folpath ved å bruke informasjonsfunksjonen ENVIRON som følger.

Kode:

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

Trinn 7: La oss nå sjekke om mappen eksisterer eller ikke, og om den ikke gjør det, la oss lage en ved å bruke FSO-metoden som følger.

Kode:

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

Trinn 8: La oss nå legge til navnene som er lagret ved å bruke forskyvningsfunksjonen som følger.

Kode:

 For hver rw innen rekkevidde ("A2", rekkevidde ("A1"). Slutt (xlDown)) Resultat = rw.Offset (0, 1). Verdi 

Dette vil åpne filene med navn samtidig i vedleggsmodus der nyere verdier er den siste som legges til. Vi har brukt koden ovenfor slik at verdien på resultatet blir tildelt én etter én.

Trinn 9: Siden Join-funksjonen bruker 1-D-matrise, vil vi bruke application.transpose-funksjonen med join-funksjonen for å konvertere den i en 1-D-matrise som følger.

Kode:

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

Hvorfor har vi brukt application.transpose? Fordi rekke (1-D) generelt må rekkevidden være horisontalt, noe som betyr at en rad har mange kolonner. Siden vi har et vertikalt område her i kolonne B, som er resultatet, har vi brukt denne transponeringsfunksjonen for å konvertere den til en 1-D-matrise. Vi har brukt VbTab som en avgrenser, slik at verdiene er i de neste cellene.

Trinn 10: Før vi avslutter for loop, la oss lukke filen og avslutte for en loop på følgende måte.

Den samlede koden ser ut som den nedenfor.

Kode:

 Undereksempel2 () Dim FSO Som ny scripting. FilSystemObject Dim St As scripting.TextStream Dim rw Som område Dim res Som streng Dim col Som heltall Dim FolPath Som streng Dim Result Som String Worksheets ("Sheet2"). Aktiver col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Result "Hvis ikke FSO.FolderExists (FolPath) Så FSO.CreateFolder FolPath for hvert rw innen rekkevidde (" A2 ", Range (" A1 "). Slutt (xlDown)) Resultat = rw.Offset (0, 1). Verdisett St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Delta (applikasjon .Transpose (Application.Transpose (rw.Resize (1, col). Value)), vbTab) St.WriteLine res St.Close Neste rw End Sub 

Trinn 11: La oss nå kjøre koden ovenfor ved å trykke på F5-tasten, vi kan se på skrivebordet vårt at det er opprettet en mappe med navnet på Resultat som vist nedenfor.

Trinn 12: Åpne mappen vi vil ha tre filer som Pass, Fail og Grace.

Hvis vi åpner en av filene, la oss bare si at vi åpner Fail-fil, og vi kan se dataene for studentene som har mislyktes.

Ting å huske

  • Den brukes til å bli med i en strenggruppe med en vanlig avgrenser.
  • Utgangen som returneres av denne funksjonen er String.
  • Det er motsatt av Split-funksjonen i VBA.
  • Hvis vi ikke gir en avgrenser til denne funksjonen, tar den som standard "plass" som en avgrenser.
  • Arrayen i argumentet skal være en endimensjonal matrise. Hvis ikke kan vi bruke de konvensjonelle metoder for anvendelse. Transpose som forklart i eksempel 2.

Anbefalte artikler

Dette er en guide til VBA Join Function. Her diskuterer vi hvordan du kan bruke Join Function i Excel ved å bruke VBA-kode sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Excel-datofunksjon
  2. Sammenføyningstrenger i Excel
  3. Søknader fra VBA Union
  4. Excel sammenkoble kolonner

Kategori: