Excel宏在每列下添加一行总和

时间:2013-12-02 18:40:51

标签: sql excel vba excel-vba

我非常擅长使用宏,我觉得这个超出了我的能力。我有一个Excel文件,其中我在A列中有一个字符串ID列,在B,C,D和E列中有数据(作为一个Double)。我希望宏读取A列,每次它都显示“switch” ,我希望它在它下面插入一行,并在A列中写下“TOTAL”,并分别对B,C,D和E列的上述条目求和。每行总和应该只包括从前一个'TOTAL'行到正在写入的那一行。如果我能以任何方式澄清请告诉我 - 我已经找到了一些有用的问题,这些问题已在这里提出,但没有一个能够帮助我自己写这个问题。提前谢谢,

1 个答案:

答案 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