Vba关闭excel应用程序/工作簿冻结

时间:2013-05-15 16:03:31

标签: vba excel-vba excel-2010 excel

我遇到以下代码的问题:

Dim excelapp as object
set excelapp = CreateObject("excel.application")
dim ws as object
dim wb as Workbook

wb= excelapp.Workbooks.Open(path)
ws= wb.Sheets(1)
'in the code i send the worksheet object around by reference in order to read the
'worksheet and manipulate data, i dont create other instances of excel apps or
'workbooks

然后我尝试:

wb.Close

我也尝试过:

excelapp.Quit

两者都没有工作,他们都冻结并说他们正在等待OLE操作,并且我有多个excel进程打开如果我不调用这些,当我尝试打开我通过代码打开的excel文件时,我只能将它们打开为只读,因为它们已经检查给我。

我还尝试执行一个关闭所有应用程序“Excel.Exe”的shell脚本,但它关闭了...正在执行vba的实际excel文件,所以这不是一个好的解决方案。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

可能是Excel应用程序检测到工作簿已更改并且正在显示一个对话框(由于该应用程序不可见而无法访问)。尝试:

wb.Close False

告诉Excel忽略对工作簿的任何更改。