Я пытаюсь построить простой макрос в 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.