Excel 2016 VBA自定义函数myDISCOUNT返回FALSE异常求助
问题排查与解决方案
你的自定义函数逻辑本身没有问题(函数向导能返回正确值就证明了这一点),单元格显示FALSE的问题大概率出在调用方式或Excel设置上,按以下步骤排查:
- 检查单元格公式:确保公式是直接调用函数,比如
=myDISCOUNT(A2,B2),不要额外添加比较逻辑(比如误写为=myDISCOUNT(A2,B2)="High",这种写法会返回布尔判断结果)。 - 排查同名命名范围:按
Ctrl+F3打开名称管理器,搜索是否存在名为myDISCOUNT的单元格/范围。如果有,Excel会优先调用命名范围而非自定义函数,删除该同名命名即可。 - 确认代码存放位置:自定义函数必须放在标准模块中(VBA编辑器里右键插入→模块),如果放在工作表模块或ThisWorkbook模块中,跨工作表调用时需要加上工作表前缀,比如
=Sheet1.myDISCOUNT(A2,B2)。 - 强制重新计算:按
F9键触发全表重新计算,或者在「公式」选项卡中将计算选项设置为「自动」(手动计算模式下单元格不会自动更新结果,但函数向导会实时计算)。 - 检查单元格格式:选中目标单元格,右键设置单元格格式为「常规」或「文本」,避免格式导致的显示异常。
附你的VBA函数代码(逻辑验证无误):
Function myDISCOUNT(quantity As Double, price As Double) As String Dim strText As String If quantity > 99 Then strText = "High" Else strText = "Small" End If myDISCOUNT = strText End Function
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

