MJ9*_*J95 0 excel vba excel-vba
我需要帮助动态地将行与VBA结合在Excel中,其中值有时在一列中相同.
样本数据
A B C D E
1 r 10 5 3
1 r 12 8 2
2 q 60 50 40
2 q 25 45 55
2 q 100 200 300
Run Code Online (Sandbox Code Playgroud)
编辑:我的示例数据中的错误,将A中的最后一个值从3更改为2.
理想情况下,我会将列中下面值相同的行组合在一起B,同时将C&D中的值组合在一起,用分号分隔并对E列中的值求和.
当有一个重复但没有变化的重复数量时(动态组合),它可以工作
这基本上是我尝试过的:
Dim i As Long
i = 2
For i = 2 to lastRow
If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
Cells(i, 3).Value = Cells(i, 3).Value & ";" & Cells(i + 1, 3).Value
Cells(i, 4).Value = Cells(i, 4).Value + Cells(i + 1, 4).Value
Rows(i + 1).Delete
Else
i = i + 1
End If
Loop
Run Code Online (Sandbox Code Playgroud)
我们可以倒退.之前:
子:
Sub dural()
Dim i As Long
lastRow = 5
For i = lastRow To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Cells(i - 1, 3).Value = Cells(i - 1, 3).Value & ";" & Cells(i, 3).Value
Cells(i - 1, 4).Value = Cells(i - 1, 4).Value + Cells(i, 4).Value
Rows(i).Delete
End If
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
之后: