如何在Excel VBA单元格复制代码中加入IFERROR错误检查公式
解决方案:在VBA生成的公式中整合IFERROR函数
当然可以实现这个需求!只需要调整VBA里公式字符串的拼接逻辑,把IFERROR函数直接包裹住原有的工作表引用即可。下面是修改后的完整代码:
Set Feeder = Sheets("Projects").Range("B" & Rows.Count).End(xlUp) With Sheets("Database") Set Storage = .Range("C" & .Rows.Count).End(xlUp).Offset(-Masterrow + 1) ' 核心修改:用IFERROR包裹原引用,错误时返回0 Storage.Formula = "=IFERROR(Projects!" & Feeder.Address & ",0)" End With
关键修改说明:
- 把原来直接赋值的
Storage.Value2 = "=" & "Projects!" & Feeder.Address替换成了Storage.Formula(其实用Value2也能生效,但用Formula更贴合公式赋值的场景) - 公式字符串拼接成
"=IFERROR(Projects!" & Feeder.Address & ",0)",这样生成的公式会自动变成=IFERROR(Projects!B2,0)(假设Feeder对应的是Projects表的B2单元格),完美实现错误值返回0的需求
举个实际场景例子:如果Feeder指向的是Projects表的B5单元格,那么生成的公式就是=IFERROR(Projects!B5,0)——当Projects!B5是错误值(比如#N/A、#VALUE!)时,目标单元格会显示0,否则显示正常的单元格内容。
内容的提问来源于stack exchange,提问作者Remi
相关产品推荐
相关产品推荐

