Excel VBA写入IFERROR公式返回空值触发1004错误原因咨询
报错原因
这是VBA的字符串双引号转义规则导致的问题:
- VBA规定,若要在字符串内容中插入一个英文双引号
",必须用两个连续的双引号""做转义,否则单个双引号会被VBA识别为字符串的结束标记,导致内容解析错误。 - 你现有代码中IFERROR的空值参数仅写了
"""(三个连续双引号):VBA解析时会把前两个双引号转义为公式中的一个双引号,剩余的第三个双引号会被判定为整个VBA字符串的结束符,最终生成的公式语法非法,因此触发1004运行时错误。 - 当返回值设为0时不需要用到双引号,不存在转义冲突,所以可以正常运行。
修复方法
将IFERROR的空值参数改为四个连续双引号即可,修改后的代码如下:
Cells(9, 8) = "=IFERROR(VLOOKUP([@[Roll '#]],Sheet3!C15:K78,9,0), """")"
原理:四个连续双引号经VBA转义后,正好对应Excel公式中表示空文本的""语法,生成的公式完全符合Excel规则,不会再触发报错。
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

