Excel VBA-anslutningsfunktion

VBA JOIN-funktionen används för att förena en rad underlag med den angivna avgränsaren. Precis som ordet i sig betyder att det måste gå i två eller flera strängar. Här är några fångster med det. Strängarna finns i en matris och den använder också en avgränsare som sammankopplad funktion. Men avgränsaren för sammankopplad funktion kan vara olika mellan två strängar eftersom vi måste tillhandahålla en avgränsare mellan varje två strängar med hjälp av sammankopplingsfunktionen. Men i Gå med i VBA måste vi tillhandahålla avgränsare bara en gång. Den avgränsaren används för att varje sträng ska gå med. Men denna parameter är också valfri. Så vad händer när vi inte tillhandahåller en avgränsare till funktionen? När vi inte tillhandahåller någon avgränsare till funktionen tar det ”utrymme” som en avgränsare som standard.

Syntax för Join-funktion i Excel VBA

Gå med-funktionen har följande syntax i Excel VBA:

Låt oss nu förstå argumenten för VBA Join-funktionen,

  • Källarray: Det är en matris eller uppsättning strängar som vi vill gå samman.
  • Avgränsare: Detta är avgränsaren eller tecknet som vi använder för att skilja mellan en sträng till en annan. En avgränsare kan vara rymd eller komma eller full stopp eller vilken karaktär som helst från vår dator.

Den utgång som returneras av denna funktion är en sträng.

Hur använder jag Excel VBA Join-funktion?

Vi lär dig hur du använder en VBA Join-funktion med några exempel i Excel.

Du kan ladda ner denna VBA Gå med i Excel-mall här - VBA Gå med i Excel-mall

Excel VBA Join - Exempel # 1

Låt oss börja med ett grundläggande exempel. Vi har en sökväg till en fil lagrad i olika celler i vårt kalkylblad i ark 1. Vi vill ha en total sökväg till den platsen i en annan cell. Den väg som måste sammanfogas är som följer,

Vi vill ha vägen i cell E2. Följ stegen nedan för att använda Gå-funktion i Excel VBA.

Steg 1: Gå till utvecklarens flik och klicka sedan på visual basic för att kunna komma in i VB Editor.

Steg 2: Klicka på infoga-fliken och sätt in en modul i VBA-projektet.

Steg 3: Låt oss nu förklara vår första delprocedur på följande sätt.

Koda:

 Subexempel () Slut Sub 

Steg 4: Eftersom vi har dataen med oss ​​kan vi helt enkelt använda värdet för områdesegenskaperna för att gå med i sökvägen enligt följande.

Koda:

 Subexempel () Område ("E2"). Värde = Slut Sub 

Steg 5: Använd Gå-funktionen för att gå med i alla strängar tillsammans med avgränsaren som "\".

Koda:

 Underexempel () Område ("E2"). Värde = Gå med (Array (Område ("A2"). Värde, Område ("B2"). Värde, Område ("C2"). Värde, Område ("D2") .Värde), "\") Avsluta sub 

Steg 6: Kör ovanstående kod genom att trycka på F5-tangenten eller genom att klicka på knappen Spela-kör så får vi vårt resultat i cell E2 som visas nedan.

Vi kan se att alla de fyra strängarna sammanfogas med en gemensam avgränsare som är "\".

Excel VBA Join - Exempel # 2

Låt oss gå vidare med ett praktiskt exempel. Jag har studentens namn, märken och godkänd eller misslyckad i ett ark. Vi vill skapa en separat mapp med filer som innehåller huruvida eleven har godkänt eller misslyckats eller gracerats. För detta kommer vi att låna några av koncepten med FSO (File System Objects) med hjälp av join-funktionen. Datan ser ut som en nedan.

Följ stegen nedan för att använda Gå-funktion i Excel VBA.

Steg 1: Låt oss i samma modul starta en annan delprocess enligt följande.

Koda:

 Subexempel2 () Slut Sub 

Steg 2: Förklara två variabler som FSO och textström som är en metod för FSO enligt följande.

Koda:

 Dim FSO som nytt skript. FilSystemObjekt Dim St som skript.TextStream 

Steg 3: Låt oss nu förklara några fler variabler, en som ett intervall för att hålla raderna och en annan som heltal för att hålla kolumnerna medan en annan som sträng för att lagra det sammanfogade strängvärdet och mappvägen och en för att skapa filnamnen.

Koda:

 Dim rw Som Range Dim res As String Dim col Som heltal Dim FolPath Som String Dim Result Som String 

Steg 4: Eftersom vi har data i ark 2, låt oss aktivera ark 2 först.

Koda:

 Arbetsblad ( "Tabell2"). Aktivera 

Steg 5: Låt oss nu räkna antalet kolumner som vi har i datan enligt följande,

Koda:

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

Steg 6: Låt oss nu tilldela en sökväg till Folpath med hjälp av informationsfunktionen ENVIRON enligt följande.

Koda:

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

Steg 7: Låt oss nu kontrollera om mappen finns eller inte och om den inte gör det, låt oss skapa en med hjälp av FSO-metoden enligt följande.

Koda:

 Om inte FSO.FolderExists (FolPath) Sedan FSO.CreateFolder FolPath 

Steg 8: Låt oss nu lägga till namnen lagrade med offset-funktionen enligt följande.

Koda:

 För varje rw inom räckvidd ("A2", räckvidd ("A1"). Slut (xlDown)) Resultat = rw.Offset (0, 1) .Värde 

Detta öppnar filerna med namn samtidigt i läget som läggs till där nyare värden är de sista att lägga till. Vi har använt ovanstående kod så att värdet på resultatet tilldelas en efter en.

Steg 9: Nu eftersom Join-funktionen använder 1-D-array kommer vi att använda application.transpose-funktion med join-funktionen för att konvertera den i en 1-D-array enligt följande.

Koda:

 Ställ in St = FSO.OpenTextFile (FolPath & "\" & Result & ".xls", ForAppending, True) res = Gå med (Application.Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab ) St.WriteLine res 

Varför har vi använt application.transpose? Eftersom i allmänhet matris (1-D) måste intervallet vara horisontellt vilket innebär att en rad har många kolumner. Nu eftersom vi har ett vertikalt område här i kolumn B vilket är resultatet har vi använt denna transponeringsfunktion för att konvertera den till en 1-D-grupp. Vi har använt VbTab som en avgränsare så att värdena finns i nästa celler.

Steg 10: Innan vi slutar for-loopen, låt oss stänga filen och avsluta sedan för en loop enligt följande.

Den övergripande koden ser ut som den nedan.

Koda:

 Subexempel2 () Dim FSO Som ny skriptning. FilSystemObjekt Dim St Som skript.TextStream Dim rw Som räckvidd Dim res Som sträng Dim col Som heltal Dim FolPath Som sträng Dim Resultat som strängarblad ("Sheet2"). Aktivera col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Result "Om inte FSO.FolderExists (FolPath) Sedan FSO.CreateFolder FolPath för varje rw inom räckvidd (" A2 ", Range (" A1 "). Slut (xlDown)) Resultat = rw.Offset (0, 1). Värde Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Gå med (ansökan .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Nästa rw End Sub 

Steg 11: Låt oss nu köra ovanstående kod genom att trycka på F5-tangenten, vi kan se på vårt skrivbord att en mapp har skapats med namnet på resultatet som visas nedan.

Steg 12: Öppna mappen där vi har tre filer som Pass, Fail och Grace.

Om vi ​​öppnar någon av filerna, låt oss bara säga att vi öppnar Fail-filen så kan vi se data för eleverna som har misslyckats.

Saker att komma ihåg

  • Det används för att gå med i en stränguppsättning med en gemensam avgränsare.
  • Utgången som returneras av denna funktion är String.
  • Det är motsatt till Split-funktionen i VBA.
  • Om vi ​​inte tillhandahåller en avgränsare till den här funktionen tar det ”utrymme” som en avgränsare som standard.
  • Arrayen i argumentet bör vara en endimensionell matris. Om inte kan vi använda de konventionella metoderna för tillämpning. Överför som förklaras i exempel 2.

Rekommenderade artiklar

Detta är en guide till VBA Join-funktion. Här diskuterar vi hur du använder Gå med funktion i Excel med hjälp av VBA-kod tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Excel-datumfunktion
  2. Sammanfogade strängar i Excel
  3. Ansökningar från VBA Union
  4. Excel-sammanslagningskolumner

Kategori: