使用VBA在Excel中嵌入VLOOKUP公式时遇类型不匹配错误求助
解决VBA中Formula赋值的运行时错误13(类型不匹配)
你的代码报错核心原因是公式字符串里的双引号未正确转义。在VBA语法中,要在字符串内表示一个双引号,必须连续写两个双引号(""),否则VBA会把中间的双引号当成字符串的结束标记,导致语法逻辑混乱,触发类型不匹配错误。
修正后的代码如下:
Sub FORMULA() Range("EG21").Formula = "=IFERROR(VLOOKUP(DY21,EVCargo!D:BG,56,0),"" - "")" End Sub
关键修改说明:
- 将原代码里的
" - "替换为"" - "",这样VBA会将其解析为Excel公式中合法的" - "文本值 - 公式的其他引用部分(单元格、工作表范围)保持不变,确保业务逻辑正确
如果需要给多个单元格批量设置该公式,比如EG21到EG30区域,可以用以下写法:
Sub BatchFormula() Range("EG21:EG30").Formula = "=IFERROR(VLOOKUP(DY21,EVCargo!D:BG,56,0),"" - "")" End Sub
VBA会自动为区域内每个单元格调整对应的VLOOKUP引用(比如EG22会自动匹配DY22)。
内容的提问来源于stack exchange,提问作者con3lla
相关产品推荐
相关产品推荐

