Excel VBA 将细节加总 Sheet

Excel VBA To Take Details To Totals Sheet

我有一个 Excel 工作簿,其中包含详细信息 sheet。我想从按钮按下事件将其转换为总计 sheet,但我不确定如何。这就是细节 sheet 的设置方式

Employee -- Item -- Amt -- Sale Date
Joe         Hat     10     2017-01-01
Joe         Ball    04     2017-01-02
Joe         Socks   06     2017-01-04
Joe         Cap     11     2017-01-06

我希望总计 sheet 只显示

Employee -- Total Sales
Joe         31

什么 VBA 会达到这个目的?

可能是最简单的例子:

Option Explicit

Public Sub TestMe()
    Range("C1") = WorksheetFunction.SumIf(Range("A1:A4"), "Joe", Range("B1:B4"))
End Sub

此外,您可以尝试将WorksheetFunction中的范围设置为变量并使其灵活。

如 Vityata 所建议的那样,您可以简单地使用数据透视表。

Select 你的 table。在“插入”选项卡上,select 数据透视表。

在“创建数据透视表”对话框中,您的 table 范围应该已经 select 编辑,因此只需单击“确定”。

在“数据透视表字段”窗格(右侧)中,选中员工,然后选中金额。这应该将 Employee 放入 Rows 区域,将 Amt 放入 Values 区域。

在数据透视表结果中,将 "Row Labels" 标题重命名为 "Employee",将 "Sum of Amt" 重命名为 "Total Sales"。根据需要格式化销售列。向单元格 A1 添加标题。

更新数据后,单击“数据透视表分析”选项卡上的 "Refresh" 按钮刷新数据透视表。您可能还需要使用 "Change Data Source" 按钮扩大源范围。有时将 Table/Range 设置为类似 Sheet1!$A:$D 的内容会更容易,然后单击 "Employee"、select 排序 A-Z 和标签过滤器旁边的下拉菜单select "Does Not Equal" 到“(空白)”