我想制作一个新的财务电子表格来跟踪费用。由于费用表是按时创建的,我无法预先生成电子表格来填充公式。我有一张汇总表,它从其他工作表中添加了总计,目前在月底手动创建了一个公式。有没有办法自动对多张工作表求和,并在创建新工作表时将新工作表添加到总和中?
使用标准 Excel 可以实现这一点吗?或者我是否需要使用一些 VBA?
我已经知道如何在多张工作表中添加相同的单元格(参见:Excel - 计算多张工作表总计的公式?)
这个 vba 脚本是我想要做的事情的一部分,但不是我想要做的:Excel - 创建新选项卡时自动从单元格导入数据
PS:我不懂 VBA,但愿意学习。我习惯使用 C/Python。
答案1
举例来说,您有累计总数Sheet1!A1
。好的,现在您可以创建一个可以运行的宏,它将获取其他工作表中的所有总数并将它们相加。
假设每张表的总计位于单元格A10
-
Sub updatethesum()
Dim ws As Worksheet
Dim i As Double
i = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Sheet1" Then
i = i + ws.Range("A10")
End If
Next
Sheets("Sheet1").Range("A1") = i
End Sub
如果你担心有人会输入字母而不是数字,A10
你可以用以下方法限制输入 -
Sub updatethesum()
Dim ws As Worksheet
Dim i As Double
i = 0
Dim bletter As Boolean
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Sheet1" Then
bletter = IsNumeric(ws.Range("A10").Value)
If bletter = True Then
i = i + ws.Range("A10")
End If
End If
Next
Sheets("Sheet1").Range("A1") = i
End Sub