Innehållsförteckning
I Excel är concatenation processen att sammanfoga två strängar till en enda sträng. Enkelt uttryckt, om vi har en tabell med förnamn i en kolumn och efternamn i en annan kolumn, kan vi använda concatenation-proceduren för att sammanfoga och kombinera dem i en enda cell på en bråkdel av en sekund. I Excel har vi en funktion som heter KONKATENERA () som gör det möjligt för oss att göra denna sammanlänkning. I VBA är denna typ av funktion inte tillåten. Vi kan inte använda KONKATENERA () i VBA-koden eftersom det inte kommer att fungera. VBA saknar inbyggda funktioner och vi kan inte använda kalkylbladfunktioner. Så den här lektionen kommer att visa hur du använder VBA concatenate för att kombinera flera celler, kolumner och rader i Excel.
Ladda ner övningsboken
Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.
VBA sammanfoga funktion.xlsmIntroduktion till VBA-funktionen Concatenate
Vi har nämnt att Excel inte har någon inbyggd funktion för VBA Concatenate, men vi kan få den att fungera som en funktion genom att kombinera olika strängar med operatörer. Här använder vi ampersand (&) som vår operatör.
⟴ Syntax
String1 = " Första texten"
String2 = " Andra texten"
⟴ Returvärde
Returvärde = String1 & String2
4 olika användningsområden för VBA-funktionen Concatenate i Excel
Här kommer vi att använda fyra olika tillvägagångssätt för att utföra concatenate-processen. Vi kommer att använda olika operatörer i kombination med VBA kod för att uppnå detta.
1. Använd Ampersand (&) Operator för att sammanfoga celler i VBA Concatenate
Som framgår av skärmbilden nedan har vi en datainsamling med två kolumner med förnamn i den ena kolumnen och efternamn i den andra. Genom att slå ihop de två kolumnerna kan vi nu få fram hela namnen. VBA inte har några inbyggda metoder för sammanlänkning, så vi använder ampersand (&) operatören enligt instruktionerna nedan.
Steg 1:
- Först och främst trycker du på Alt + F11 för att öppna Makroaktiverat arbetsblad.
- Klicka sedan på
- Välj Modul .
Steg 2:
- För att kombinera två celler till en, kopiera och klistra in följande VBA
Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String String1 = Cells(5, 2).Value String2 = Cells(5, 3).Value Cells(5, 5).Value = String1 & String2 MsgBox (full_string) End Sub
Här,
- String1 = Cells(5, 2).Värde är den första cellens placering B5 , rad 5, och kolumnen 2 .
- String2 = Cells(5, 3).Värde är den andra cellplaceringen C5 , rad 5, och kolumnen 3 .
- Cells(5, 5).Value = String1 & String2 är resultatcellens placering E5 , rad 5 och kolumnen 5 .
- String1 & String2 är de två strängar som förenas av ampersand. (&)
Steg 3:
- Spara och tryck på F5 för att köra programmet.
Därför får du resultatet i E5 cellen i det aktuella arbetsbladet.
Steg 4:
- Följ och upprepa stegen för resten av cellerna och få resultatet som visas i bilden nedan.
Läs mer: Hur du använder VBA StrComp i Excel (5 vanliga exempel)
2. Använd Plus (+) Operator för att sammanfoga celler i VBA Concatenate
Som beskrivits i föregående avsnitt har vi använt ampersand (&) för att sammanfoga cellsträngar. Du kan få samma resultat genom att använda plus-operationen (+) i stället för ampersand (&) operatör. För att få det gjort följer du de här stegen.
Steg 1:
- Öppna Makro i Excel, tryck på Alt + F11 .
- Klicka på Infoga och välj
- Efter att ha öppnat programsidan, klistrar du in följande VBA
Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String String1 = Cells(5, 2).Value String2 = Cells(5, 3).Value Cells(5, 5).Value = String1 + String2 MsgBox (full_string) End Sub
Här,
- Cells(5, 5).Value = String1 + String2 är denna linje som vi använder plus (+) i stället för ampersand (&)
Steg 2:
- När du har klistrat in, spara och tryck på F5 för att köra programmet. Du kommer följaktligen att se förändringen i cellen E5 .
- För att få det slutliga resultatet fyller du de nödvändiga cellerna genom att utföra de föregående stegen igen.
Läs mer: Hur du använder VBA StrConv-funktionen (5 exempel)
Liknande läsningar:
- Hur man anropar en Sub i VBA i Excel (4 exempel)
- Återge ett värde i en VBA-funktion (både array- och icke-array-värden)
- Hur man använder VBA DIR-funktionen i Excel (7 exempel)
- Använd VBA UCASE-funktionen i Excel (4 exempel)
- Hur man använder InStr-funktionen i VBA (3 exempel)
3. Lägg till flera kolumner med hjälp av VBA Concatenate
I de två tidigare tillvägagångssätten diskuterade vi hur man kombinerar två celler. Men om vi vill tillämpa det på hela kolumnen kommer det att ta lång tid att lägga till en efter en. Vi ska lära dig hur du lägger till flera kolumner helt och hållet med VBA kod för detta.
Steg 1:
- För det första, för att öppna Makro tryck på Alt + F11
- Välj Modul från Infoga fliken
- Klistra sedan in följande VBA
Sub ConcatCols() 'sammanfoga kolumnerna B & C i kolumn E Dim LastRow As Long With Worksheets("Sheet3") LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row With .Range("E5:E" & LastRow) .Formula = "=B5&C5" .Value = .Value End With End With End Sub
Här,
- Med arbetsblad("Sheet3") är ditt nuvarande arbetsbladsnamn.
- LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row är det första kolumnnamnet.
- Med .Range("E5:E" & LastRow) är det återlämnade cellintervallet.
- .Formula = "=B5&C5" är formeln för att ansluta till den första cellen i intervallet.
Steg 2:
- Spara slutligen och tryck på F5 för att köra programmet.
Resultatet kommer att visas helt i en kolumn.
Läs mer: Hur du använder VBA Rnd i Excel (4 metoder)
4. Sammanfoga flera rader med hjälp av VBA Concatenate
Förutom att lägga till flera kolumner kan vi också tillämpa VBA kod för att sammanfoga flera rader till en. Som visas i skärmdumpen nedan vill vi sammanfoga de tre raderna till en. För att sammanfoga raderna följer du de enkla stegen nedan.
Steg 1:
- För att aktivera Makro i Excel, tryck på Alt + F11 .
- Välj sedan Modul från Infoga
- För att sammanfoga raderna klistrar du in VBA
Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("B5:D5") For Each rng In SourceRange i = i & rng & " " " Next rng Range("B8").Value = Trim(i) End Sub
Här,
- Set SourceRange = Range("B5:D5") är källcellsintervallet.
- Range("B8").Value = Trim(i) är numret på den återvändande cellen.
Steg 2:
- Slutligen sparar du programmet och trycker på F5 att köra.
Det slutliga resultatet av sammanfogningen av de tre raderna visas alltså i cell B8 .
Läs mer: Hur du döljer de översta raderna i Excel (7 metoder)
Slutsats
Sammanfattningsvis hoppas jag att det här inlägget har gett tydliga instruktioner om hur man använder VBA sammanlänka i Excel på olika sätt. Alla dessa tekniker bör du lära dig och använda på dina data. Studera övningsboken och använd dina nyvunna kunskaper. Tack vare ditt stöd är vi motiverade att fortsätta att skapa workshops som denna.
Tveka inte att kontakta oss om du har några frågor och låt oss veta vad du tycker i kommentarsfältet nedan.
Excellent Teamet kommer ständigt att svara på dina frågor.