我无法在任何地方找到任何解决方案。有很多来源可以帮助您关闭除活动工作簿之外的所有工作簿,但我需要特定的工作簿才能保持打开状态。
例如,如果有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个打开的工作簿名称。
答案 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