【发布时间】:2018-11-07 21:11:05
【问题描述】:
我在任何地方都找不到任何解决方案。有很多资源可以帮助您关闭除活动工作簿之外的所有工作簿,但我需要特定工作簿才能保持打开状态。
例如,如果有 10 个工作簿打开,我需要关闭其中 7 个并保持其中 3 个处于打开状态..
我找到的最接近的解决方案在这里:
https://www.ozgrid.com/forum/forum/help-forums/excel-general/73743-close-all-open-workbooks-except
Dim wb As Workbook
For Each wb In Workbooks
Select Case Ucase(wb.name)
Case "BOOK1.XLS", "BOOK2.XLS", Ucase(ThisWorkbook.name)
'Code, if any
Case Else
wb.Close SaveChanges:=True
End Select
Next wb
但这不起作用。它关闭了 Book2,只有 Book1 保持打开状态。
据我所知,Book1 和 Book2 都应该保持打开状态..
当我在即时窗口中调试和使用 Debug.Print 时,我得到了这个:
Book1.xlsx
Book2.xlsx
Book3.xlsx
它基本上只是打印出 3 个打开的工作簿名称。
【问题讨论】:
-
您能否解释一下“不起作用” 的含义?你有没有使用调试器检查发生了什么?
-
@FunThomas 抱歉,我更新了问题..
-
@EitelDagnin 在
Select Case之前添加行Debug.Print Ucase(wb.name)进行调试,运行代码,并发布即时窗口输出。 -
@FunThomas 请查看更新后的问题。
-
所以你可以看到它是.xlsx 扩展名?也许改变你的代码...