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

如何在Excel中对动态范围数据求和并设置汇总单元格格式

Excel G/H列动态范围求和VBA实现

下面是适配动态行数、自动设置汇总格式的可用代码:

Sub 两列动态求和()
    Dim lastRow As Long
    ' 从G列底部往上查找最后一行有数据的行号,兼容列内有空行的场景
    lastRow = Cells(Rows.Count, "G").End(xlUp).Row
    
    ' 分别写入G、H列的求和公式,求和范围为第1行到最后一行数据
    Range("G" & lastRow + 1).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Range("H" & lastRow + 1).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    
    ' 批量设置汇总单元格格式
    With Range("G" & lastRow + 1 & ":H" & lastRow + 1)
        ' 设置字体加粗
        .Font.Bold = True
        ' 一次性设置所有边框为细实线
        .Borders.LineStyle = xlContinuous
        .Borders.Weight = xlThin
        .Borders.ColorIndex = 0
        ' 移除对角线边框
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
    End With
    
    ' 光标定位到汇总行旁的I列单元格,和原代码逻辑保持一致
    Range("I" & lastRow).Select
End Sub

核心优化点

  • 动态行数适配:自动识别G列最后一行数据的位置,无论导出的数据有多少行都能正确匹配求和范围
  • 代码精简:删除了原代码中冗余的Select/Activate操作,运行效率更高,不会触发屏幕闪烁
  • 格式设置简化:批量设置全边框属性,无需逐个定义每一条边框的参数,代码可读性更强

补充说明

如果你的导出数据保证G列没有中间空行,也可以将lastRow的获取代码替换为lastRow = Range("G1").End(xlDown).Row,逻辑完全一致。

内容的提问来源于stack exchange,提问作者T-Larsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:54:02