VBA - 关闭除特定之外的所有工作簿

时间:2018-05-29 09:10:46

标签: excel vba excel-vba

我无法在任何地方找到任何解决方案。有很多来源可以帮助您关闭除活动工作簿之外的所有工作簿,但我需要特定的工作簿才能保持打开状态。

例如,如果有10个工作簿打开,我需要关闭其中的7个并保持其中3个打开..

我找到的最接近的解决方案是:

https://www.ozgrid.com/forum/forum/help-forums/excel-general/73743-close-all-open-workbooks-except

>>> x
['This', 'is', 'a', 'test', 'for', 'a', 'string']
>>> y
[' ', ' ', ' ', '     ', ' \n ', ' ']

但这不起作用。它关闭了Book2,只有Book1保持打开状态。

据我所见,Book1和Book2都应该保持开放状态..

当我在即时窗口中调试并使用Debug.Print时,我得到了这个:

Book1.xlsx

Book2.xlsx

Book3.xlsx

它基本上只打印出3个打开的工作簿名称。

1 个答案:

答案 0 :(得分:2)

我试过这个,它为我工作。 你可以调整vars" wbStayOpenx" :

Dim wbStayOpen1 As String
Dim wbStayOpen2 As String
Dim currentwb As String

wbStayOpen1 = "BOOK1.XLS"
wbStayOpen2 = "BOOK2.XLS"
currentwb = ThisWorkbook.Name


Dim wb As Workbook
For Each wb In Workbooks

    If wb.Name <> wbStayOpen1 And wb.Name <> wbStayOpen2 And wb.Name <> currentwb Then
    wb.Close SaveChanges:=True
    End If

Next wb