【问题标题】:Find the total of the same column from multiple sheets and express totals next to sheet name on new sheet从多个工作表中查找同一列的总计,并在新工作表的工作表名称旁边表示总计
【发布时间】:2019-05-22 16:01:27
【问题描述】:

我正在寻找创建一个宏,该宏将显示多张工作表中每张工作表的一组列的总和。我需要从可变数量的条目的最后一个条目开始显示“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 行

【问题讨论】:

  • 也许您需要更改 LastRow 的代码以从 K 列而不是 A 列获取最后一行。 "LastRow = ws.Range("K" & Rows.Count).End(xlUp ).Row"

标签: excel vba


【解决方案1】:

声明并充分使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多