VBA写入含IFERROR的公式报错,仅核心公式无问题
解决VBA中IFERROR公式报错的问题
哈哈,这个坑我之前踩过!说起来确实挺讽刺的——问题根本不是IFERROR本身,而是你公式里的参数分隔符用错了!
你看,VBA里的Formula属性只认美式Excel公式的格式,也就是参数之间必须用逗号分隔,不管你本地Excel是不是用分号当分隔符。你原来的代码里写的是:
Range("OptionH").Formula = "=IFERROR((RC[1]-RC[-1])/RC[1];0)"
这里的分号;就是报错的罪魁祸首,VBA识别不了这个分隔符,所以直接报错;而去掉IFERROR之后的公式没有多参数,自然就没问题了。
给你两个解决方案:
方案一:把分号换成逗号,用美式格式写公式(最通用,不管Excel区域设置都能跑):
Range("OptionH").Formula = "=IFERROR((RC[1]-RC[-1])/RC[1],0)"方案二:改用
FormulaLocal属性,这个属性会遵循你本地Excel的分隔符设置,所以可以保留分号:Range("OptionH").FormulaLocal = "=IFERROR((RC[1]-RC[-1])/RC[1];0)"
选哪个看你需求,要是代码需要在不同区域设置的Excel上运行,优先方案一;如果只是自己用,方案二更顺手。
内容的提问来源于stack exchange,提问作者berwt
相关产品推荐
相关产品推荐

