从多个工作表中查找同一列的总计,并在新工作表上的工作表名称旁边表示总计

时间:2019-05-22 16:01:27

标签: excel vba

我正在寻找创建一个宏,该宏将显示多张纸中每张纸的设置列中的总和。我需要将“ K”列的总数显示为可变数量的条目的最后一个条目之后的第一行。要求它在VBA中,因为它需要与许多其他功能一起运行。

我尝试了以下代码,但未给出预期的结果,似乎是从其他工作表中提取数据。

Sub SumWorksheets()

    Dim LastRow As Long
    Dim ws As Worksheet

    For Each ws In Worksheets

        LastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
        ws.Range("K" & LastRow + 1) = Application.WorksheetFunction.Sum(Range("K2:K" & ws.Rows.Count))

    Next

End Sub

我希望“ K”列中的所有数字的总和在“ K”行中的最后一个数字下方显示2行

1 个答案:

答案 0 :(得分:0)

声明并完全使用wsLastRow变量。不使用会导致代码从另一个工作表中提取值。 @LoveCoding的每个注释中,使用不同的列作为LastRow可以覆盖Col K中的单元格。您应该在Sum函数中使用LastRow变量。

Dim ws As Worksheet, LastRow As Long

For Each ws In ThisWorkbook.Worksheets
    LastRow = ws.Range("K" & ws.Rows.Count).End(xlUp).Row

    ws.Range("K" & LastRow + 1) = Application.WorksheetFunction.Sum(ws.Range("K2:K" & LastRow))
Next