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

Excel VBA:在For Next循环中使用Sum函数求和的问题

VBA循环中动态行的C-M列求和解决方案

正确代码写法

最可靠的写法是通过Cells对象定位区域,避免字符串拼接可能的错误:

Range("N" & i).Value = Application.WorksheetFunction.Sum(Range(Cells(i, "C"), Cells(i, "M")))

如果偏好字符串拼接,你最初的第一种写法语法本身没问题,但需要确保i是有效的整数行号(比如循环时i的范围是合法行号,且i被定义为数值类型如Long或Integer):

Range("N" & i).Value = Application.WorksheetFunction.Sum(Range("C" & i & ":" & "M" & i))

错误写法分析

  • 第二种写法Sum(Range("C" & i), Range("M" & i)):仅对C列和M列的单个单元格求和,而非C到M列的整个区域,不符合需求。
  • 第三种写法Sum("C" & i & ":" & "M" & i):WorksheetFunction.Sum需要传入Range对象,直接传单元格地址字符串会导致参数类型错误。

额外注意事项

  • 确保循环变量i被正确定义为数值类型(如Dim i As Long),避免因类型不匹配导致地址拼接失效。
  • 如果操作的不是当前活动工作表,最好加上工作表对象限定(如Sheet1.Range(...)),防止引用错误的工作表。

内容的提问来源于stack exchange,提问作者Benjamin W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:20:41