workbook.close crashes excel



我试图打开一个excel文件,打印它,然后单击按钮关闭它。

它打开,打印,关闭我的文件,然后excel崩溃了。

没有警告,它只是关闭所有文件(2个文件(并通过打开";版本1";我的文件。

Workbooks.Open "Thenameofmywb.xlsm"

Workbooks("Thenameofmywb").PrintOut
Application.CutCopyMode = False
Application.Wait (Now + TimeValue("0:00:05"))
Workbooks("Thenameofmywb.xlsm").Close SaveChanges:=True

以下是我的一些代码,我尝试了Doevents方法和许多其他小东西,但都不起作用。

也许你能帮我。

我找到了它。我认为它与代码无关,也不在我编写的代码中。

我打开的文件一定已损坏。我用";"干净";文件,它工作。

所以我从";损坏的";文件转换为新文件,现在运行良好。

现在我不知道它们是如何被破坏的,但那是另一次了。

感谢大家对的帮助

您没有对文件进行任何更改,只是访问、打印和关闭它。所以最后一部分应该是SaveChanges:=false

此外;On Error Resume Next";在子过程的开头。

下面的代码适用于我,使用Nathan使用对象的想法。

Sub qqq()
Workbooks.Open "C:UsersinfoDocumentsHHH.xlsx"
Set wb = Workbooks(2)
wb.PrintOut
Application.CutCopyMode = False
Application.Wait (Now + TimeValue("0:00:05"))
wb.Close
End Sub

我甚至尝试了以下代码,它仍然有效:

Sub hhh()
Workbooks.Open "C:UsersinfoDocumentsHHH.xlsx"
Set wb = Workbooks(2)
wb.PrintOut
'Application.CutCopyMode = False
'Application.Wait (Now + TimeValue("0:00:05"))
wb.Close
End Sub

我注释掉了2行代码。我正在使用xlsx作为需要打印的文件进行测试。如果您使用的是xlsm,可能有一些代码可能会造成影响。您仍然可以使用xlsm,但在某种程度上,同时打开的两个工作簿中的代码可能会导致问题。

最新更新