【问题标题】:run a macro on another workbook and then close the workbook that launched the macro在另一个工作簿上运行宏,然后关闭启动宏的工作簿
【发布时间】:2016-10-14 21:05:20
【问题描述】:

如何
1.从当前(FIRST.XLSM)工作簿运行宏以打开另一个工作簿(SECOND.XLSM)
2. 在关闭的 (FIRST.XLSM) 工作簿 (SECOND.XLSM) 上运行宏,然后继续其过程 我试过这个:

Sub FirstMacro()
Workbooks.Open Range("f90")        'second workbook full path

Workbooks("first.XLSM").Close SaveChanges:=True  'save first workbook and close
Second_Workbook_Macro ' run second workbook macro
End Sub

但由于它保存并关闭了第一个工作簿,vba 不会继续其过程..

【问题讨论】:

    标签: vba excel macros


    【解决方案1】:
    Sub FirstMacro()
    
        Dim wb As Workbook
        Set wb = Workbooks.Open Range("f90")   'second workbook full path
    
        Application.Run "'" & wb.Name & "'!Second_Workbook_Macro"
    
        ThisWorkbook.Close SaveChanges:=True  'save first workbook and close
    
    End Sub
    

    【讨论】:

    • 感谢 TIM 的回复...您建议的此 VBA 在第二个工作簿中的 VBA 完成其自己的宏之后关闭第一个工作簿...我需要在第二个工作簿中的 VBA 执行它之前关闭第一个工作簿作为第一个工作簿的作业在其 VBA 运行期间减慢第二个工作簿的计算速度
    • 不要使用 Application.Run,​​而是尝试使用 Application.OnTime 来安排另一个宏并稍作延迟,这样您就可以关闭第一个工作簿。
    • 完美运行......感谢蒂姆提供的简短有效的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2014-08-01
    相关资源
    最近更新 更多