我在Excel中有这个VB脚本,可以从Excel文件创建Word文档。
但是,每当我重新运行相同的脚本时,我都会收到Word文件为Open和Locked for Editing的提示。我手动转到任务管理器并结束所有打开的Word进程。是否有一个脚本来检查特定的Word文件是否打开,如果是,它将终止进程?
答案 0 :(得分:1)
在创建word文档之前,您可以通过放置以下代码来关闭进程WINWORD.EXE:
CreateObject("WScript.Shell").Run "taskkill /f /im WINWORD.EXE", 0
执行此操作后,您可以继续创建单词文件。即使有多个进程在运行,它们也都会被终止。
这里,/ f表示强制删除进程,/ im表示我们正在传递进程名称(在本例中为WINWORD.EXE)。
要了解有关taskkill命令的更多信息,请参阅此站点:https://technet.microsoft.com/en-in/library/bb491009.aspx
编辑2: 如果打开了多个文档,并且您只想关闭其中一个文档,则可以编写以下代码来关闭该特定文档:
案例1:当您知道要关闭的word文件的确切路径时
strPath = "store the word file path in this variable"
set objDoc = getobject(strPath)
objDoc.close
set objDoc = Nothing
案例2:当您只知道名称时(让我们说名称是 Document1 )而不是路径
set objWord = getobject(,"word.application")
set objDocs = objWord.Documents
for each doc in objDocs
If strComp(doc.name,"Document1",1)=0 then
doc.close
Exit For
End If
next
set objDocs = Nothing
set objWord = Nothing