0

我对以下代码有疑问:

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文件,所以这不是一个好的解决方案。先感谢您。

4

1 回答 1

1

可能是 Excel 应用程序检测到工作簿已更改并正在显示一个对话框(由于该应用程序不可见,因此该对话框是不可见的)。尝试:

wb.Close False

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

于 2013-05-15T16:07:06.827 回答