首页 > 解决方案 > 关闭所有打开的模块的宏

问题描述

在 2017 年之前,我有一个 VBA 宏例程,可以关闭所有打开的 VBA 模块(包含宏的模块除外)。

它看起来像这样:

Sub Close_Modules_1() 
    Dim iTemp As Integer
 
    For iTemp = ThisWorkbook.VBProject.VBE.Windows.Count To 1 Step -1
        With ThisWorkbook.VBProject.VBE
            .Windows (iTemp)                             '<- Invalid use of property
        End With
    Next
    Debug.Print "Done."
End Sub
  1. 谁能提供一个关闭所有 VBA 模块的工作例程?我有时会得到 100 多个开放模块。
  2. Microsoft 是否明智地在 Excel 2016/2019/Excel 365 中对模块执行非法操作?

在此先感谢您提供有用的想法。

标签: vbamodule

解决方案


用这个:

Private Sub X_Click()
    Dim iTemp As Integer
    For iTemp = ThisWorkbook.VBProject.VBE.Windows.Count To 1 Step -1
        Debug.Print ThisWorkbook.VBProject.VBE.Windows(iTemp).Caption
        If InStr(ThisWorkbook.VBProject.VBE.Windows(iTemp).Caption, "(") > 0 Then
            ThisWorkbook.VBProject.VBE.Windows(iTemp).Close
        End If
    Next
End Sub

不要忘记先检查此选项:

选项


推荐阅读