Sammanfoga data i ett arbetsblad

Att sammanfoga data, dvs slå ihop data, kan ibland vara önskvärt. Inte minst när vi importera och exporterar data till/från XL.

Här demonstreras en teknik för att snabbt läsa in data, sammanfoga och skriva tillbaka den sammanfogade data till arbetsbladet igen.


Exemplet utgår från att det finns data i kolumn A och kolumn B samt att resultatet ska visas i kolumn C i samma arbetsblad.

Option Explicit
Option Base 1


Sub Sammanfoga_Data()
'© 2001 Alla rättigheter XL-Dennis
Dim vaKolumn1 As Variant, vaKolumn2 As Variant, vaData() As Variant
Dim wsBlad As Worksheet
Dim rnKolumn1 As Range, rnKolumn2 As Range, rnData As Range
Dim iAntal As Long

Set wsBlad = Worksheets("Blad1")
Set rnKolumn1 = wsBlad.Range("A2", Range("A65536").End(xlUp))
Set rnKolumn2 = wsBlad.Range("B2", Range("B65536").End(xlUp))


'I detta steg tilldelas matriserna respektive kolumns data
vaKolumn1 = rnKolumn1.Value
vaKolumn2 = rnKolumn2.Value


ReDim vaData(1 To UBound(vaKolumn1))

'I nästa steg sammanfogas data i en ytterligare matris
For iAntal = 1 To UBound(vaKolumn1)
     vaData(iAntal) = vaKolumn1(iAntal, 1) & " " & vaKolumn2(iAntal, 1)
Next iAntal

'Slutligen tilldelas cellområdet i C-kolumnen matrisens innehåll
Set rnData = wsBlad.Range("C2", Range("C" & UBound(vaKolumn1) + 1))
rnData.Value = Application.Transpose(vaData)
End Sub


Resultatet av denna procedur kan se ut enligt följande:


Ovanstående kan ersättas med kalkylbladsfunktioner, vilka kopieras nedåt i C-kolumnen: