ich eine Reihe von Spalten haben, wobei einige Spalten dazwischen, und dann einen weiteren Satz von Spalten, das heißt:VBA: Die Kombination von zwei Gruppen von Spalten dynamisch
Vorher:
ColA ColB ColC ColA ColB ColC RandomCol1 RandomCol2 ColA ColB ColC ColA ColB ColC
1 2 3 4 5 6 N/A N/A 7 8 9 10 11 12
Nach:
ColA ColB ColC RandomCol1 RandomCol2
1;4;7;10 2;5;8;11 3;6;9;12 N/A N/A
Wenn die erste Gruppe ist "leer":
Vorher:
ColA ColB ColC ColA ColB ColC RandomCol1 RandomCol2 ColA ColB ColC ColA ColB ColC
blank blank blank blank blank blank N/A N/A 7 8 9 10 11 12
Nach:
ColA ColB ColC RandomCol1 RandomCol2
7;10 8;11 9;12 N/A N/A
Ich möchte die Werte in jeder Zeile jeder Spalte mit dem gleichen Namen von ;
getrennt kombinieren, während dann die übrig gebliebenen Spalten zu löschen. Des Weiteren, wenn die Werte in der ersten Gruppe „leer“ sind, dann sollten sie nur die Werte aus der zweiten Gruppe übernehmen (nach Zufalls Spalten)
Die Zufalls Spalten nicht
kombiniert werden solltenIch habe dies versucht, das tut scheinen nicht zu funktionieren, wenn es zufällig Spalten dazwischen (auch nicht sicher, wie Logik hinzufügen, die erste „Gruppe“ überspringt, wenn der Wert „leer“ ist:
For DestCol = StartCol To EndCol
For ReadCol = DestCol + 1 To EndCol
If Cells(1, DestCol) = Cells(1, ReadCol) Then
For i = 2 To lastRow
If Cells(i, ReadCol) <> "" Then
Cells(i, DestCol) = Cells(i, DestCol) & ";" & Cells(i, ReadCol)
End If
Next i
End If
Next ReadCol
Next DestCol
Verwenden Sie Excel unter Windows, da dies eine SQL-Anforderung ohne verschachtelte For-Schleifen ist? – Parfait
Ich benutze Excel auf Windows, ja. Ich kann nicht sql für diese verwenden – MJ95
Eigentlich können Sie SQL dafür verwenden - Sie können sql in VBA gegen Arbeitsmappen schreiben. Parfait ist eigentlich derjenige, der mir das in einer anderen Frage beigebracht hat. –