为何名为sum1的VBA函数运行后输出"REF"?
为什么名为sum1的VBA函数会返回#REF!错误?
问题核心是自定义函数名sum1和Excel内置的隐藏内部函数名冲突了。Excel存在一些不对外公开的内部函数标识符,sum1正是SUMIF函数的内部调用别名,当你定义同名的自定义函数时,Excel的函数解析逻辑会出现混乱,最终返回#REF!错误。
正常运行的代码:
Function vsum(x As Integer, y As Integer, z As Integer) vsum = x + y + z End Function
出现#REF!错误的代码:
Function sum1(x As Integer, y As Integer, z As Integer) sum1 = x + y + z End Function
解决办法:
- 直接修改自定义函数的名称,比如改为
my_sum或sum_total,避开Excel内置的隐藏函数名 - 如果一定要保留
sum1这个名称,在单元格调用时明确指定模块名,格式为=模块名.sum1(参数1,参数2,参数3),强制Excel调用你自定义的函数
内容的提问来源于stack exchange,提问作者naveen kumar
相关产品推荐
相关产品推荐

