在我的一些VBA代码中,我创建了一个Word对象,打开了一个Word文件,关闭了该Word文件,退出了Word对象,并将两者都设置为无。直到"最近",确切的时间,我不知道,在过去的2-3个月里,我被拉了不同的方向,一直工作正常。 然而,"前几天",我的代码开始挂断 - 旋转轮,无法单击/编辑任何单元格等 - 在这些文件上,特别是在 Word 操作期间。
当我打开任务管理器时,我注意到MS Word的隐藏实例打开。 当我通过任务管理器关闭它们时,我的Excel文件将恢复正常。
为了清楚起见,下面是我的典型代码示例(根据注释进行修订(:
Dim objWORD as Object
Dim fileWORD as Object
Dim filenameWORD as String
'Other variables, etc
filenameWORD = "\someUNCpathFolderFile.docx"
Set objWORD = CreateObject("Word.Application")
Set fileWORD = objWORD.Documents.Open(filenameWORD)
'Do the stuff to the thing
fileWORD.Close SaveChanges:=0
Set fileWORD = Nothing
objWORD.Quit SaveChanges:=0 'Word object does not close, back checked in Task Manager
Set objWORD = Nothing 'Code hangs up here until instance of Word is ended via Task Manager
我有点不知所措,它甚至可能不是 Excel/Word 问题,或者更多的是操作系统/机器问题。但是,嘿,也许我的谷歌游戏不适合这个问题,其他人有答案。
-编辑#1-
我还测试了多个电子表格和子例程,并且始终保持稳定。遍历代码时,它将挂断objWORD.Quit
后面的行,直到任务管理器上关闭隐藏的 Word 实例。
-编辑#2-
我已经在公司内的另外4个桌面上对此进行了测试,其中包含以下信息:
1(Windows 10,1909,内部版本18363.836 - Office 2010相同问题 2(Windows 10,1909,内部版本18363.836 - Office 2016相同问题 3( Windows 10,1903,内部版本 18362.295 - Office 2013No Issue
4( Windows 10,1909,内部版本 18363.778 - Office 2010没有问题
我的计算机运行的是 Windows 10、1909,内部版本 18363.836 - Office 2013,与其他两台具有相同症状但具有不同 Office 版本的计算机相同的操作系统内部版本。
我开始认为这实际上可能是一个操作系统问题......
-编辑#3-
我尝试将计算机回滚到Windows 10的早期版本,但问题仍然存在。我还尝试在Office 2013上运行修复功能。没有运气。
我也有一些Outlook VBA模块,所以我测试了它们。在这些中,我以相同的方式创建一个 EXCEL 对象,以及一个 Word 对象。有趣的是,Excel 对象的行为符合预期,但 Word 对象仍然无法按预期Quit()
和Close()
。
我仍然找不到明确的答案,这是Word/Office问题,Windows问题还是混合问题。
感谢大家的帮助,但这可能是我希望在未来的补丁/更新中修复的事情之一。
好吧,在过去的 2 个月内,Windows/Microsoft 一定是在更新中通过的,并且此问题不再发生...... 不幸的是,无法真正将其确定为任何特定的解决方案。
在"完全奇怪,但现在它可以工作"问题下提交这个。
感谢所有提供帮助的人,您的努力并没有被忽视。
我在powershell中遇到了类似的问题,这是我的解决方案:
objWORD.Application.Quit () | Out-Null