Also die Situation ist, dass ich 4 Spalten mit variablen Längen in eine Spalte mit allen Daten aus diesen 4 kopieren möchte. Das Problem ist, ich lose Daten in dem Prozess.Kombinieren Sie bestimmte Spalten (variable Länge) in eine Spalte - Excel VBA
Als ein Beispiel sollte es 693 Zeilen sein, aber ich bekomme nur 648 Zeilen insgesamt. Ich bin relativ neu in VBA und habe diese Codezeilen entwickelt.
Sub Copy()
Dim RngA As Range, RngB As Range, RngC As Range, RngD As Range, Rng As Range
Set RngA = Range(Range("I2"), Range("I" & Rows.Count).End(xlUp))
Set RngB = Range(Range("J2"), Range("J" & Rows.Count).End(xlUp))
Set RngC = Range(Range("K2"), Range("K" & Rows.Count).End(xlUp))
Set RngD = Range(Range("L2"), Range("L" & Rows.Count).End(xlUp))
Range("O2").Resize(RngA.Count).Value = RngA.Value
Range("O" & RngA.Count + 1).Resize(RngB.Count).Value = RngB.Value
Range("O" & RngB.Count + 1).Resize(RngC.Count).Value = RngC.Value
Range("O" & RngC.Count + 1).Resize(RngD.Count).Value = RngD.Value
With Sheets("Keywords")
Columns("O:O").Sort Key1:=.Range("=O1"), Order1:=xlAscending, Header:=xlYes
End With
End Sub
Sie addieren nicht kumulativ die Anzahl der Zellen aller vorherigen Bereiche, z 'Range (" O "& RngB.Count + 1)' berücksichtigt nicht die Größe von RngA. – SJR
Aus irgendeinem Grund verwenden Sie nicht die ['CONCATENATE()' -Funktion] (https://support.office.com/en-us/article/CONCATENATE-function-8f8ae884-2ca8-4f7a-b093-75d702bea31d) als Formel anstelle von VBA? In der Spalte O verwende '= CONCATENATE (I: I, J: J, K: K, L: L)'. –
@Peh CONCATENATE wird nicht jede Spalte unter der nächsten Zeile auszeichnen, es wird alle vier dieser Zeile in der einen Zelle zurückgeben. –