如何通过脚本自动汇总除指定工作表外所有工作表的D6单元格值?
自动汇总指定工作表D6单元格的VBA方案
核心脚本代码
下面的VBA脚本会遍历工作簿中所有工作表,排除main和ssid后,累加其余工作表的D6单元格数值,并将结果写入指定位置:
Sub AutoSumD6() Dim ws As Worksheet Dim total As Double total = 0 '遍历所有工作表 For Each ws In ThisWorkbook.Worksheets '排除指定工作表 If ws.Name <> "main" And ws.Name <> "ssid" Then '仅累加数值型单元格,避免空值/文本报错 If IsNumeric(ws.Range("D6").Value) Then total = total + ws.Range("D6").Value End If End If Next ws '将汇总结果写入main工作表的A1单元格,可自行修改目标位置 ThisWorkbook.Worksheets("main").Range("A1").Value = total End Sub
使用步骤
- 打开目标Excel文件,按下
Alt + F11打开VBA编辑器 - 插入模块:右键左侧工程窗口中的工作簿名称 → 选择「插入」→「模块」
- 将上述代码粘贴到模块编辑区
- 修改脚本最后一行的目标单元格(比如你想把结果放到
main!B2,就改成ThisWorkbook.Worksheets("main").Range("B2")) - 运行脚本:按下
F5,或回到Excel界面,点击「开发工具」→「宏」→ 选择AutoSumD6→ 执行
可选:新增工作表自动更新汇总
如果希望每次新增工作表时自动重新计算汇总值,可添加以下代码到ThisWorkbook模块中:
Private Sub Workbook_NewSheet(ByVal Sh As Object) '工作表新增后自动触发汇总 AutoSumD6 End Sub
注意事项
- 脚本会自动跳过D6单元格为空或非数值的情况,避免计算错误
- 排除的工作表名称需与实际完全一致(Excel工作表名称不区分大小写,但代码中为严格匹配)
- 若需要调整汇总的目标单元格,直接修改脚本中对应的单元格引用即可
内容的提问来源于stack exchange,提问作者Jesse Lee
相关产品推荐
相关产品推荐

