VBA - 关闭窗口

时间:2011-08-26 08:49:49

标签: excel vba

我有一个宏,可以循环创建17个工作簿。当它完成在工作簿上的工作时,它将关闭它,并通过以下方式转到下一个:

ActiveWorkbook.Save
ActiveWindow.Close

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

  

运行时间'-2147417848(80010108)':

     

objekt'Window'的方法'关闭'失败

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

知道为什么会这样做吗?

3 个答案:

答案 0 :(得分:5)

根据评论。

等待期可以解决这个问题。

答案 1 :(得分:4)

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

Workbooks(excelFile).Close SaveChanges:=True

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

答案 2 :(得分:0)

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

Windows(1).Close SaveChanges:=False