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

如何将文件名填入单元格?VBA写入公式遇1004错误求助

解决VBA设置提取文件名公式时的Run-Time Error '1004'问题

我懂你碰到的麻烦了——手动输入那个提取文件名的Excel公式完全正常,但用VBA给活动单元格设置公式时就弹出1004错误。这问题其实出在VBA里的字符串引号转义没处理对,咱们来快速搞定它!

错误原因分析

你写的VBA代码里,引号的转义有两处关键问题:

  1. 公式里的"["后面多了个多余的空格,导致Excel无法识别正确的公式语法
  2. 最后用来表示空字符串的引号没转义到位,VBA里需要用四个双引号("""")来代表Excel公式里的空字符串("")

修正后的代码

这里提供两种写法,选你习惯的就行:

写法1:和手动输入的A1样式公式一致(更直观)

ActiveCell.Formula = "=SUBSTITUTE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),""["","""")"

写法2:R1C1引用样式(适合需要批量填充的场景)

ActiveCell.FormulaR1C1 = "=SUBSTITUTE(LEFT(CELL(""filename"",R1C1),FIND(""]"",CELL(""filename"",R1C1))-1),""["","""")"

额外优化建议

其实你可以不用指定A1单元格,CELL("filename")默认会返回当前工作簿的文件名,公式能简化不少,对应的VBA代码如下:

ActiveCell.Formula = "=SUBSTITUTE(LEFT(CELL(""filename""),FIND(""]"",CELL(""filename""))-1),""["","""")"

⚠️ 注意:运行这段代码前,请确保当前工作簿已经保存过——如果是新建未保存的工作簿,CELL("filename")会返回空值,同样可能触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:41:58