我遇到以下代码的问题:
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文件,所以这不是一个好的解决方案。 提前谢谢。
答案 0 :(得分:1)
可能是Excel应用程序检测到工作簿已更改并且正在显示一个对话框(由于该应用程序不可见而无法访问)。尝试:
wb.Close False
告诉Excel忽略对工作簿的任何更改。