【问题标题】:closing all open workbooks without saving and then open an another workbook关闭所有打开的工作簿而不保存,然后打开另一个工作簿
【发布时间】:2015-02-27 09:43:37
【问题描述】:

我正在寻找用于关闭所有打开的工作簿而不保存然后打开另一个工作簿的 VBA 代码。

现在有人知道正确的 VBA 代码了吗?

我现在有以下代码:

Private Sub Workbook_Open()
Dim WB As Workbook

For Each WB In Workbooks
    If Not (WB Is ActiveWorkbook) Then WB.Close
Next

End Sub

这个我没试过jet。我尝试让宏 dat 每天在同一时间开始并关闭所有工作簿。然后打开工作簿并更新数据。

【问题讨论】:

  • 对您的代码稍作修改以不保存更改:WB.Close savechanges:=False

标签: excel vba


【解决方案1】:

我已将 WB.Close savechanges:=False 调整为 VBA 代码,它的工作完美。

谢谢

【讨论】:

    【解决方案2】:

    在我看来,使用宏不是一个好方法。 看一下这个。 http://blog.contextures.com/archives/2013/04/25/close-all-files-in-excel-2013/

    或者你可以使用 cmd 命令来做到这一点,比如

    taskkill /IM excel.exe /F
    start excel.exe
    

    或制作一个批处理文件或一个 vbscript 做同样的事情。

    【讨论】:

    • 恕我直言:通过 taskkill 杀死 excel 比关闭所有工作簿更好??
    • 使用不带/F 选项的taskkill 可以让您使用默认的询问对话框保存未保存的文档,而我之所以输入/F 只是因为假设您已经全部保存了。有时,您可能有多个 excel 实例在关闭事件时表现得很奇怪,尤其是在使用 Web 浏览器的“打开”功能打开文档时。这个 taskkill 将绕过这些令人头疼的问题,用新的 excel 重新开始。
    • 问题是如何在 VBA 中做到这一点,而不是什么是种植植物的最佳方法......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多