我有一组列,其间有一些列,然后是另一组列,即:
在:
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
后:
ColA ColB ColC RandomCol1 RandomCol2
1;4;7;10 2;5;8;11 3;6;9;12 N/A N/A
如果第一组是“空白”:
在:
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
后:
ColA ColB ColC RandomCol1 RandomCol2
7;10 8;11 9;12 N/A N/A
我想将每列的每一行中的值与由;
分隔的相同名称组合,然后删除剩余的列。此外,如果第一组中的值为“空白”,那么它应该只取第二组中的值(在随机列之后)
不应合并随机列
我尝试了这个,当中间有随机列时似乎不起作用(如果值为“空白”,也不知道如何添加跳过第一个“group”的逻辑:
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