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

通过VBA向单元格添加公式的问题:如何显示SUM公式

嗨,这个问题我刚好碰到过,很容易解决!

你之前的代码问题在于,直接把VBA里的Range(Cells(...), Cells(...))写到了公式字符串里——这是VBA的语法,Excel的公式根本认不出来它是什么,所以得把这个VBA范围转换成Excel能识别的单元格引用格式才行。

正确的写法

你需要用VBA的Address方法把这个范围转换成A1样式的地址字符串,然后拼接到SUM公式里,代码应该是这样的:

Cells(NewLastRowNumber, 2).Formula = "=SUM(" & Range(Cells(NewLastRowNumber + 8, 3), Cells(LastRowNumber, 3)).Address & ")"

这样赋值之后,单元格里就会出现类似=SUM(C10:C25)的公式(具体行号取决于你的变量值),而不是直接的计算结果。

额外说明

如果你想要单元格直接显示公式文本(而不是计算后的数值),有两种方式:

  • 一种是先把单元格格式设置为文本,再赋值公式:
    With Cells(NewLastRowNumber, 2)
        .NumberFormat = "@"
        .Value = "=SUM(" & Range(Cells(NewLastRowNumber + 8, 3), Cells(LastRowNumber, 3)).Address & ")"
    End With
    
  • 另一种是开启Excel的「显示公式」模式,这样所有单元格都会显示公式而不是结果:
    Application.DisplayFormula = True
    

不过第一种方式是针对单个单元格的,第二种是全局的,你可以按需选择。

之前你用WorksheetFunction.Sum是直接在VBA里计算出结果再赋值给单元格,所以单元格里只有数值;而用.Formula属性赋值正确的公式字符串,就能让单元格保留公式本身啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:27:38