You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA设置.Formula时触发Run-time error '1004'错误求助

解决VBA设置公式时Run-time error '1004'的问题

问题根源

  1. AutoFill类型错误:你使用了xlFillValues参数,这会填充单元格的计算结果而非公式本身。由于L52的公式结果可能为空,导致填充操作无效并触发1004错误。
  2. 冗余的Select操作:VBA中使用Select/Selection容易引发上下文错误,直接操作Range对象更稳定。

修正方案

方案1:直接给整个区域设置公式(推荐,更高效)

无需AutoFill,直接将公式批量应用到L52:L64区域,Excel会自动处理相对引用的行号变化:

ActiveSheet.Range("L52:L64").Formula = "=IF(C12="""","""",IF(LEFT($K52,1)*1=8,"""",CHOOSE(LEFT($K52,1),$C52,$D52,$E52,$F52,$G52,$H52,$J52)))"

方案2:修正AutoFill参数并移除Select操作

如果坚持使用AutoFill,将Type改为xlFillFormulas(填充公式而非值),同时去掉不必要的Select:

ActiveSheet.Range("L52").Formula = "=IF(C12="""","""",IF(LEFT($K52,1)*1=8,"""",CHOOSE(LEFT($K52,1),$C52,$D52,$E52,$F52,$G52,$H52,$J52)))"
ActiveSheet.Range("L52").AutoFill Destination:=ActiveSheet.Range("L52:L64"), Type:=xlFillFormulas

额外说明

公式中的引号转义是正确的(用两个双引号""表示公式里的一个双引号),手动输入正常说明公式逻辑本身没有问题,错误完全来自VBA的填充操作设置。

内容的提问来源于stack exchange,提问作者Kewle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:32:42