【发布时间】:2020-05-29 11:05:45
【问题描述】:
我在关闭宏中的工作簿时遇到了一些问题。我想通过以下方式加速我的宏:
Application.ScreenUpdating = False
'my code
Application.ScreenUpdating = True
但是当它完成时,我一直在使用的所有工作簿突然一起打开。我想关闭它们,所以我添加 * Workbooks.Close * 行。不幸的是,当 VBA 到达此代码行时出现错误。这是因为 excel“看不到”我的工作簿。当我关闭错误窗口并尝试再次运行关闭行时,一切正常,因为工作簿有足够的时间打开。可能excel需要一些时间来更新和打开所有工作簿,所以我应该推迟我的代码。我试过 * Application.Wait * 和 * Do Until loop *,但它没有用。我也尝试在屏幕更新之前关闭这些工作簿,但 excel 只是忽略了这些行。
我最后的代码行:
Application.ScreenUpdating = True
Application.DisplayAlerts = False
Workbooks(wb_1).Close
Workbooks(wb_2).Close
Application.DisplayAlerts = True
提前感谢您的帮助!
【问题讨论】:
-
在尝试关闭工作簿时是否填充了
wb_1和wb_2?还是他们失去了价值?如果您使用Workbooks(wb_1).Close False将关闭而不保存或要求保存工作簿,如果您想保存更改,请更改为True。