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

Excel打开时WorkbookOpen_CopyandReplace宏无法自动运行,手动执行正常

工作簿打开时VBA宏无法自动执行的解决方法

此前打开Excel文件时,系统会自动从指定关闭工作簿中复制名为"SEEBREZ IMS.1"的工作表至当前工作簿,并删除原有同名工作表。但现在打开文件时,对应的VBA代码无法自动执行,手动运行该代码则可正常完成操作。

提供的VBA代码:

Sub WorkbookOpen_CopyandReplace()

'It will check to see if there is a worksheet wit the same name and delete it

'On Error GoTo 0 then excutes the next line of code that will allow us to enter in a workbook, with it being closed, and copy that worksheet in this workbook


Application.ScreenUpdating = False

    On Error Resume Next
        ThisWorkbook.Sheets("SEEBREZ IMS.1").Delete
    On Error GoTo 0
    
    Set closedBook = Workbooks.Open("P:\62001-5 IN PROCESS\DDE 62001-5\62001-5 4141-84 SEEBREZ SEAT_IMS.xls")
    closedBook.Sheets("SEEBREZ IMS.1").Copy Before:=ThisWorkbook.Sheets("IMS.1")
    closedBook.Close SaveChanges:=False
    
    
Application.ScreenUpdating = True


End Sub

问题原因

Excel工作簿打开时自动触发的事件过程必须使用固定名称Workbook_Open,你当前的宏命名为WorkbookOpen_CopyandReplace,属于自定义宏,不会被系统自动识别为打开事件触发的代码,因此打开文件时不会自动运行,但手动执行可正常生效。

解决方案

方法一:将宏改为标准打开事件过程

  1. 按Alt + F11打开VBA编辑器
  2. 在左侧工程窗口中找到当前工作簿的ThisWorkbook模块,双击打开
  3. 将原有代码替换为以下内容(保留核心逻辑,改用标准事件名称):
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    
    ' 删除现有同名工作表
    On Error Resume Next
        ThisWorkbook.Sheets("SEEBREZ IMS.1").Delete
    On Error GoTo 0
    
    ' 打开目标工作簿并复制工作表
    Dim closedBook As Workbook
    Set closedBook = Workbooks.Open("P:\62001-5 IN PROCESS\DDE 62001-5\62001-5 4141-84 SEEBREZ SEAT_IMS.xls")
    closedBook.Sheets("SEEBREZ IMS.1").Copy Before:=ThisWorkbook.Sheets("IMS.1")
    closedBook.Close SaveChanges:=False
    
    Application.ScreenUpdating = True
End Sub
  1. 保存工作簿,关闭后重新打开,代码会自动执行

方法二:保留原宏,通过打开事件调用

如果不想修改原宏名称,可在ThisWorkbook模块中添加以下代码,让打开事件触发原宏:

Private Sub Workbook_Open()
    Call WorkbookOpen_CopyandReplace
End Sub

额外注意事项

  • 确保工作簿打开时已启用宏:若弹出宏禁用提示,需选择启用,否则代码无法运行
  • 确认目标文件路径未变更:虽然手动运行正常,但仍需保证P:\62001-5 IN PROCESS\DDE 62001-5\62001-5 4141-84 SEEBREZ SEAT_IMS.xls的路径和文件名未修改
  • 恢复事件触发:若之前关闭过Excel事件,可在VBA编辑器执行Application.EnableEvents = True恢复事件功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:52:40