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

Run Time Error 1004:Workbook_Open执行PowerQuery触发的异常排查

问题解决方法

核心原因

Workbook_Open自动执行时,代码依赖ActiveWorkbook的上下文会出现混乱——此时激活的工作簿大概率是包含该事件的工作簿,而非你打开的目标CSV文件,导致PowerQuery在错误的工作簿中创建查询,触发"表格的工作表数据需与表格位于同一工作表"错误。

具体修正步骤

  • 放弃使用ActiveWorkbook,改用明确的工作簿对象变量绑定打开的CSV文件,所有后续操作都通过该变量执行,彻底避免上下文混乱。

示例修正代码片段:

Private Sub Workbook_Open()
    Dim csvWB As Workbook
    Dim targetPath As String
    
    targetPath = "你的CSV文件实际路径"
    ' 打开CSV并绑定到对象变量
    Set csvWB = Workbooks.Open(targetPath)
    
    ' 用csvWB替代ActiveWorkbook执行PowerQuery查询创建
    csvWB.Queries.Add Name:="Liste_All_Masques", Formula:= _
        "你的PowerQuery完整公式内容"
    
    ' 后续的另存为、关闭操作同样使用csvWB变量
    csvWB.SaveAs Filename:="目标XLSX保存路径", FileFormat:=xlOpenXMLWorkbook
    csvWB.Close SaveChanges:=False
End Sub
  • 额外检查PowerQuery公式中的数据源引用,确保其指向csvWB内的工作表(比如公式里的Source = Excel.CurrentWorkbook(){[Name="目标表名"]}[Content],要保证"目标表名"确实存在于打开的CSV工作簿中)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:31:02