我想在Excel的VBA中构建一个简单的宏,它将SUM [合并]具有相同名称(第一列中的值)的所有行。 因此,例如如何使用VBA在Excel中合并/合并相似的行?
ExampleRowA 1 0 1 1 3 4
ExampleRowA 2 1 2 2 1 0
ExampleRowC 9 7 7 7 2 5
的结果应该是这样的
ExampleRowA 3 1 3 3 4 4
ExampleRowC 9 7 7 7 2 5
我们可以假设,需要合并的行未散,且只能出现一个又一个。
我做了这样的事情,它几乎可以工作,除了我必须运行两次。
LastRow = ActiveSheet.UsedRange.Rows.Count
Set r = ActiveSheet.UsedRange.Resize(1)
With Application.WorksheetFunction
For iRow = 2 To LastRow
If Cells(iRow, 1) = Cells(iRow + 1, 1) Then
LastCol = r(r.Count).Column
SumCol = LastCol + 1
For iCol = 2 To SumCol
Cells(iRow, iCol) = .Sum(Range(Cells(iRow, iCol), Cells(iRow + 1, iCol)))
Next iCol
Rows(iRow + 1).Delete
End If
Next iRow
End With
我已经用其他脚本语言编写了一些程序,但是VB/VBA是新手,不知道它的可能性/局限性。
在其他语言中,我可能会使用数组,但我不明白他们在这里工作的方式。我不能否认,由于时间的限制,我宁愿通过分析实例来学习,而不是阅读500页以上的VBA圣经。
解决方案是否需要宏?您是否考虑过使用Excel内置的电子表格功能?例如,如果提前知道第一列的可能值,则可以使用SUMIF工作表函数非常轻松地完成此操作。如果第一列的可能值提前*未知,您可以使用数据透视表。 –