You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多工作表求和结果汇总至主工作表(首表)A1单元格?

解决VBA汇总非指定工作表求和结果到主表的问题

你的原代码存在逻辑重复、依赖低效操作、未实现汇总目标等问题,下面是优化后的代码,可直接实现把所有排除coverletter的工作表中C5:D14区域的求和结果汇总到第一个工作表(主表)的A1单元格:

Sub TotalSumToMainSheet()
    ' 声明变量
    Dim mainSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim totalSum As Double
    Dim sumRange As Range
    
    ' 初始化主表(指向第一个工作表)
    Set mainSheet = ThisWorkbook.Worksheets(1)
    ' 初始化总汇总值为0
    totalSum = 0
    
    ' 遍历工作簿内所有工作表
    For Each targetSheet In ThisWorkbook.Worksheets
        ' 跳过名为"coverletter"的工作表
        If targetSheet.Name <> "coverletter" Then
            ' 指定当前工作表要求和的区域
            Set sumRange = targetSheet.Range("C5:D14")
            ' 累加当前工作表的求和结果到总汇总值
            totalSum = totalSum + WorksheetFunction.Sum(sumRange)
            
            ' 可选:如果需要保留每个工作表的单独求和结果到H4,取消下面这行注释
            ' targetSheet.Range("H4").Value = WorksheetFunction.Sum(sumRange)
        End If
    Next targetSheet
    
    ' 将最终汇总结果写入主表的A1单元格
    mainSheet.Range("A1").Value = totalSum
End Sub

新手友好的代码说明:

  • 避免激活工作表:直接通过工作表对象.单元格/区域的方式操作,比Activate快得多,也不会因为手动切换工作表而出错
  • 明确变量指向:用mainSheet固定指向主表,后续引用更清晰
  • 逐步累加汇总:用totalSum变量逐步收集每个符合条件工作表的求和结果,最后一次性写入主表,避免重复操作单元格
  • 灵活扩展:如果需要保留每个工作表的单独求和结果到H4,只需取消注释代码里的可选行

内容的提问来源于stack exchange,提问作者asad ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:03:24