我非常擅长使用宏,我觉得这个超出了我的能力。我有一个Excel文件,其中我在A列中有一个字符串ID列,在B,C,D和E列中有数据(作为一个Double)。我希望宏读取A列,每次它都显示“switch” ,我希望它在它下面插入一行,并在A列中写下“TOTAL”,并分别对B,C,D和E列的上述条目求和。每行总和应该只包括从前一个'TOTAL'行到正在写入的那一行。如果我能以任何方式澄清请告诉我 - 我已经找到了一些有用的问题,这些问题已在这里提出,但没有一个能够帮助我自己写这个问题。提前谢谢,
丹
答案 0 :(得分:0)
Sub macro1()
Dim sum1 As Integer
sum1 = 0
totalRowsInExcel = Sheets(1).UsedRange.Rows.Count
i = 2
While (i <= totalRowsInExcel)
If (Cells(i, 1).Value <> "TOTAL") Then
sum1 = sum1 + Cells(i, 2).Value
End If
If (Cells(i, 1).Value = "switch") Then
Rows(i + 1 & ":" & i + 1).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A" & i + 1).Select
ActiveCell.FormulaR1C1 = "TOTAL"
Range("B" & i + 1).Select
ActiveCell.FormulaR1C1 = sum1
sum1 = 0
ActiveWorkbook.Save
totalRowsInExcel = Sheets(1).UsedRange.Rows.Count
End If
i = i + 1
Wend
End Sub