Excel在Word中的应用&x27;关不上
我已经尝试了所有关闭应用程序的方法,但仍停留在任务管理器中打开的后台Excel在Word中的应用&x27;关不上,excel,vba,ms-word,Excel,Vba,Ms Word,我已经尝试了所有关闭应用程序的方法,但仍停留在任务管理器中打开的后台 Dim appXL作为对象,fileXL作为对象,nameXlFile作为字符串,filePath作为字符串 filePath=file\u dir&“\”文件名 设置appXL=CreateObject(“Excel.Application”) appXL.Visible=False 设置fileXL=Workbooks.Open(文件名:=filePath,只读:=True) appXL.quit set appXL
Dim appXL作为对象,fileXL作为对象,nameXlFile作为字符串,filePath作为字符串
filePath=file\u dir&“\”文件名
设置appXL=CreateObject(“Excel.Application”)
appXL.Visible=False
设置fileXL=Workbooks.Open(文件名:=filePath,只读:=True)
appXL.quit
set appXL = Nothing
尝试在您写“…”的地方添加以下内容:
这将强制在退出应用程序之前关闭文件
我相信Excel会询问您是否要保存工作簿(即使它是以只读方式打开的)。这将使Excel在退出例程后保持打开/活动状态,但您无法看到它
完整的代码应如下所示:
Sub OpenExcelWorkbook()
Dim appXL As Object, fileXL As Object, nameXlFile, filePath As String
filePath = file_dir & "\" & file_name
Set appXL = CreateObject("Excel.Application")
appXL.Visible = False
Set fileXL = Workbooks.Open(FileName:=filePath , ReadOnly:=True)
' Do additional/optional stuff with your workbook here...
fileXL.Close False ' Close the workbook without saving
appXL.quit
End Sub
Dim appXL As Object, fileXL As Object, nameXlFile, filePath As String
filePath = file_dir & "\" & file_name
Set appXL = CreateObject("Excel.Application")
appXL.Visible = False
Set fileXL = Workbooks.Open(FileName:=filePath , ReadOnly:=True)
fileXL.Save
fileXL.Close
你能这样试试吗
Sub OpenExcelWorkbook()
Dim appXL As Object, fileXL As Object, nameXlFile, filePath As String
filePath = file_dir & "\" & file_name
Set appXL = CreateObject("Excel.Application")
appXL.Visible = False
Set fileXL = Workbooks.Open(FileName:=filePath , ReadOnly:=True)
' Do additional/optional stuff with your workbook here...
fileXL.Close False ' Close the workbook without saving
appXL.quit
End Sub
Dim appXL As Object, fileXL As Object, nameXlFile, filePath As String
filePath = file_dir & "\" & file_name
Set appXL = CreateObject("Excel.Application")
appXL.Visible = False
Set fileXL = Workbooks.Open(FileName:=filePath , ReadOnly:=True)
fileXL.Save
fileXL.Close
您不需要设置appXL=Nothing,因为appXL
是
当前过程和“垃圾收集器”将处理它。当您从另一个VBA应用程序中自动执行Excel并使用非限定Excel对象时,会发生此模式。某种程度上,它强制VBA运行时在对象的父对象上创建隐藏/虚拟引用 通过自动化,您必须非常具体地使用Excel对象。当从另一个应用程序驱动时,Excel对非限定对象的容忍度会降低确认所有内容。从
Set fileXL = appXL.Workbooks.Open(FileName:=filePath , ReadOnly:=True)
' ^^^^^^^
并确保代码中的每个Excel对象都是完全限定的
此外,如果可以的话,最好让Excel应用程序可见,以观察正在发生的事情。有时会出现由于某种原因显示警报的情况,例如未保存的工作簿。可以使用禁用这些警报
appXL.DisplayAlerts = False
这也很有用,但至少在应用程序的开发阶段,让appXL可见是很有用的,直到您对它相当满意为止
p、 美国。
我在MS Word中测试了您的代码,有无明确的
appXL.
限定,删除了中的所有其他内容…
。如果没有资格,Excel的实例仍保留在任务管理器中。有了限定,它就消失了。您是否尝试注释掉appXL.Visible=False,或者在最后将其设置为True?可能有一个对话框窗口询问一些问题。您是否在退出之前关闭工作簿,是否找到了它?另外,…
可能是问题所在,因此可能会将更完整的代码发布到。是的,不幸的是,我尝试过并且没有通过任何消息,我也尝试过在没有“…”的情况下立即打开和关闭,但不起作用…手头的问题不太可能是由于没有关闭工作簿造成的,因为它是在ReadOnly:=True
模式下打开的。事实上这不太可能。当您以只读模式打开工作簿时,仍然可以对其进行修改。修改后,Excel将询问用户是否应保存更改(但应保存为新文档)。如果工作簿具有在开始时自动计算的公式,则工作簿将被“修改”,并显示(隐藏)保存更改的提示。这会阻止Excel正确退出,因为应用程序等待用户响应……是的,这是一种可能的情况。我的意思是“…”代码不太可能对WB进行更改。但是有可能世界银行有外部联系。问题是:PI试图使用:Set fileXL=appXL.Workbooks.Open(FileName:=filePath,ReadOnly:=True)appXL.quit
并打开一个空文档以确保安全性。。。。我快疯了:(@CeccoBeppe我在MS Word中测试了您的代码,有无appXL。
明确限定,删除了…
中的所有其他内容。没有限定,Excel的实例仍保留在任务管理器中。有了限定,它就消失了。您现在可能面临着不同的问题。您能更清楚地解释一下吗关于什么是新问题?我的意思是,我把限定条件放在一个原始excel文件“visible=true”上进行了尝试。不幸的是,它们留在任务管理器上。您是否省略了所有其他内容,只测试了显示的几行?正如我所说,代码的其余部分可能有一些不限定的对象。非常感谢您和其他人帮助过我的用户。我不得不等待大约半分钟来升级任务管理器。