2011-08-26 251 views
1

我有一个在循环中创建17个工作簿的宏。当它工作的一个工作簿完成它关闭,并进入下一个具有:VBA - 关闭窗口

ActiveWorkbook.Save 
ActiveWindow.Close 

这一直工作得很好,直到最近。突然在循环nr。 7它说(6圈之前仍然工作正常):

运行时 '-2147417848(80010108)':

方法OBJEKT'关闭 '窗口' 失败

我可以删除“ActiveWindow.Close”并手动关闭所有工作簿以使宏工作。但仍然...

任何知道它为什么这样做?

+0

您是否尝试过等待? – Fionnuala

+0

你的意思是“在循环中创建17 *工作簿*”?在iDevlop的 –

+0

- 是的。在Remou - 不,我可以尝试。谢谢 – David

回答

5

根据评论。

等待期可能会解决此问题。

4

我不知道你为什么使用ActiveWindow.Close,也许这跟它有关。收书(据我所知),正确的方法是:

Workbooks(excelFile).Close SaveChanges:=True 

有时候一些古怪的事情指的活动对象时发生,所以最好是明确的。

0

我使用窗口的编号......即我知道这将是窗口#1,所以我这样引用它。示例:

Windows(1).Close SaveChanges:=False