循环遍历所有工作表并在每个工作表的底部添加总和/公式

时间:2014-01-23 00:44:47

标签: excel-vba vba excel

我正在研究一个做两件事的宏。首先,它将数据分成多个工作表(每个工作表基于特定列的值)。其次,它将循环遍历所有工作表,并在每张工作表的底部添加一些总和和公式。

我找到了一个非常有用的代码来分割我稍微修改过的工作表并且工作正常。我发现了另一段代码,它将遍历文档中的所有工作表。我只是不确定如何在每张纸的末尾添加必要的总和/公式字段。

循环表单的代码是:

  Sub WorksheetLoop2()

     ' Declare Current as a worksheet object variable.
     Dim Current As Worksheet

     ' Loop through all of the worksheets in the active workbook.
     For Each Current In Worksheets

        ' Insert your code here.
        ' This line displays the worksheet name in a message box.
        MsgBox Current.Name
     Next

  End Sub

所以在“在此处插入代码”部分我需要代码:

  1. 查找工作表中的最后一行数据
  2. 从那里下来一两行
  3. 在A栏中添加一个只标有“总分数”的标签
  4. 在B列中创建一个单元格,该单元格对H列中所有值的总和进行求和
  5. 如果我走得那么远,我想我可以弄明白其余的。

    非常感谢任何帮助或建议。非常感谢!

1 个答案:

答案 0 :(得分:0)

我建议您分别搜索问题的每一部分,而不是试图立即找到完整的解决方案。以下是我在搜索您的每个问题后找到的各种解决方案。

这将找到A列中的最后一行并向下移动两行并将标签作为总点数

Range("A" & Rows.Count).End(xlup).Select
lastRowInColA = Selection.Row
totPointsRow = lastRowInColA + 2
Range("A" & totPointsRow) = "Total Points"

或者,您可以使用Excel Developor中的提示

Set rLastCell = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)

使用下面的代码来添加列中的所有数字

columnSum = Application.WorksheetFunction.Sum(columns("H:H"))

要将此总和放在Total Points行的B列中,请使用我之前使用的相同逻辑。

Range("B" & totalPointsRow) = columnSum