为什么我的代码停止运行? VBA在继续之前启动一个关闭另一个文件的文件。

时间:2014-12-18 00:10:23

标签: excel vba excel-vba excel-2010

Sub auto_open()

   Workbooks.Open(Filename:= _
        "D:\umc\030_DOI19980929\120_Automation_Files\Auto_UpdateDOI.xls" _
        , UpdateLinks:=3).RunAutoMacros Which:=xlAutoOpen

        Application.Run "Auto_UpdateDOI.xls!AutoUpdate"

End Sub

上述文件打开一个名为AutoUpdate DOI

的文件
Sub Autoupdate()

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.PrintCommunication = False

    Call Flat

    Workbooks("Auto_Root.xls").Close
    Workbooks.Open(Filename:= _
        "D:\umc\040_OPM19970417\120_Automation_Files\Auto_UpdateOPM.xls" _
        , UpdateLinks:=3).RunAutoMacros Which:=xlAutoOpen

     Application.Run "Auto_UpdateOPM.xls!Autoupdate"

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.PrintCommunication = True
End Sub

Auto_Root关闭后,为什么AutoUpdateDOI停止工作?如果我移动工作簿(" Auto_Root.xls")。接近它的底部它仍将运行但我想在运行Auto_UpdateOPM之前关闭Auto_Root文件

1 个答案:

答案 0 :(得分:2)

代码停止运行,因为您已关闭包含它的文件。仅仅因为你的第一个程序在另一个文件中调用代码并不意味着第一个文件中的代码仍然没有运行。当您关闭该文件时,线程被中断并且代码停止。