VBA新手提问:使用ActiveSheet.UsedRange.Sum为何无法正确赋值到A1
VBA代码问题解答
错误原因
- 语法错误:VBA中Sub过程声明时,即使没有传入参数也需要补充空括号,你写的
Sub UsedR_S缺少末尾的(),运行时会先触发语法错误,无法进入执行环节。 - 逻辑错误:
Sum不是Range对象的内置属性或方法,不能直接通过区域对象.Sum的格式调用。你的猜测是正确的,Sum属于工作表函数,需要传入待计算的区域作为参数使用,无法直接跟在区域对象后调用,VBA中使用工作表函数需要通过WorksheetFunction对象触发。
修正后可正常运行的代码
Sub UsedR_S() Range("A1").Value = WorksheetFunction.Sum(ActiveSheet.UsedRange) End Sub
补充说明
上述代码的计算规则和Excel工作表内的Sum函数完全一致,已用区域内的文本、空单元格、逻辑值会被自动忽略,如果区域内没有任何数值,最终会在A1单元格返回0,不会触发运行报错。
内容的提问来源于stack exchange,提问作者viewotst
相关产品推荐
相关产品推荐

