Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms word Can';t关闭并删除打开的MSWord 2010文档(ActiveDocument.Close阻止Kill命令运行。)_Ms Word - Fatal编程技术网

Ms word Can';t关闭并删除打开的MSWord 2010文档(ActiveDocument.Close阻止Kill命令运行。)

Ms word Can';t关闭并删除打开的MSWord 2010文档(ActiveDocument.Close阻止Kill命令运行。),ms-word,Ms Word,我正在尝试关闭打开的word文档,并将其作为DocumentBeforeClose事件的一部分删除。我在搜索过程中不断运行以下代码(+/-一些错误捕获语句): 我在好几个地方发现了类似的代码(坦白说,几乎完全相同的代码),每个人似乎都确认它是有效的,但我无法在自己的尝试中让它正确运行,不管我在哪个模块中有代码。运行时,文档总是关闭,但代码也会停止在那里,永远不会到达Kill命令。理论上,Word实例应该在文档关闭后继续运行脚本;在我的例子中,这个实例是打开的,但此时没有任何东西在运行。我是不是做

我正在尝试关闭打开的word文档,并将其作为DocumentBeforeClose事件的一部分删除。我在搜索过程中不断运行以下代码(+/-一些错误捕获语句):

我在好几个地方发现了类似的代码(坦白说,几乎完全相同的代码),每个人似乎都确认它是有效的,但我无法在自己的尝试中让它正确运行,不管我在哪个模块中有代码。运行时,文档总是关闭,但代码也会停止在那里,永远不会到达Kill命令。理论上,Word实例应该在文档关闭后继续运行脚本;在我的例子中,这个实例是打开的,但此时没有任何东西在运行。我是不是做错了什么

如果有用的话,在我正在使用的另一个版本的代码中,我有一个Do-While循环,遍历一个目录并删除名称中包含“temp.doc”的文档。该代码在运行和删除关闭的文件时没有问题,但在关闭后也不会删除活动/打开的文档

这是我需要放在普通模块中才能工作的东西吗?(如果可能的话,我们确实希望避免这种情况)。谢谢你的帮助

编辑以添加谷歌搜索“MSWord VBA删除打开的文档”的前几个相关搜索结果:

同样,统一因素似乎是:

Activedocument.close
Kill WhateverOpenFile

…这似乎毫无意义

DocumentBEFOREClose在文档仍处于打开状态时执行。无法删除打开的文件。不幸的是,Word没有“关闭后”事件。但您可以尝试使用WindowActivate或WindowDeactivate事件。可能在关闭之前设置了一个“全局”,其他事件检查并存储文档名。如果已设置,请检查文档是否确实不是文档集合的一部分(因为可以取消关闭)。如果没有,那就去杀人。嗨,辛迪!我喜欢您关于尝试将全局变量与WindowDeactivate耦合的建议,但我仍然无法在文档关闭后运行此代码(WindowDeactivate也在文档关闭前运行,如果我在那里使用activedocument.close,我仍然无法使用kill命令。)我几乎放弃了这次成功的跑步;目前,我将kill循环放在DocumentOpen事件中,这样每次打开文档时,它都会在目标目录中运行“cleanup”,这将足以满足我的需要。但我仍然面临的问题是,我不明白人们是如何让这些代码为他们工作的,显然,这似乎是达成一致的解决方案,以完成这项任务。是不是我必须把代码放在MSWord的普通模块中?除非我误读了,否则我从未见过这个需求与代码片段结合在一起。这是一个版本特定的(2010年对2013年?)非常令人费解。你能在DocumentBeforeClose事件中粘贴几个指向完整代码的链接吗?我见过的所有讨论都使用DocumentOpen。。。你没有提到你是否尝试过WindowActivate?我还可以想象在这种情况下,通过一个Windows API调用来检查文件最终由Word发布的时间(但没有代码)!感谢您一直支持我。DocumentBEFOREClose在文档仍处于打开状态时执行。无法删除打开的文件。不幸的是,Word没有“关闭后”事件。但您可以尝试使用WindowActivate或WindowDeactivate事件。可能在关闭之前设置了一个“全局”,其他事件检查并存储文档名。如果已设置,请检查文档是否确实不是文档集合的一部分(因为可以取消关闭)。如果没有,那就去杀人。嗨,辛迪!我喜欢您关于尝试将全局变量与WindowDeactivate耦合的建议,但我仍然无法在文档关闭后运行此代码(WindowDeactivate也在文档关闭前运行,如果我在那里使用activedocument.close,我仍然无法使用kill命令。)我几乎放弃了这次成功的跑步;目前,我将kill循环放在DocumentOpen事件中,这样每次打开文档时,它都会在目标目录中运行“cleanup”,这将足以满足我的需要。但我仍然面临的问题是,我不明白人们是如何让这些代码为他们工作的,显然,这似乎是达成一致的解决方案,以完成这项任务。是不是我必须把代码放在MSWord的普通模块中?除非我误读了,否则我从未见过这个需求与代码片段结合在一起。这是一个版本特定的(2010年对2013年?)非常令人费解。你能在DocumentBeforeClose事件中粘贴几个指向完整代码的链接吗?我见过的所有讨论都使用DocumentOpen。。。你没有提到你是否尝试过WindowActivate?我还可以想象在这种情况下,通过一个Windows API调用来检查文件最终由Word发布的时间(但没有代码)!谢谢你和我在一起。
Activedocument.close
Kill WhateverOpenFile