Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Word VBA:如何知道实际保存操作是否已完成?_Vba_Automation_Ms Word - Fatal编程技术网

Word VBA:如何知道实际保存操作是否已完成?

Word VBA:如何知道实际保存操作是否已完成?,vba,automation,ms-word,Vba,Automation,Ms Word,我的文档有问题。Word VBA中的SaveAs方法对于大型Word文档,似乎保存操作是异步的,即调用.SaveAs后,它会立即返回,但是对于大型Word文档,实际的保存操作可能尚未完成,正在另一个线程中进行 所以我想问的是,是否有办法检测实际的保存操作是否正在进行或完成 我使用Delphi调用Word的自动化接口,如果它在讨论这个问题时有意义的话,但我不这么认为?办公自动化的saveas是进程外调用,因此它总是在单独的进程上运行,因此本质上是异步的 除非发出异常,否则根本无法捕获通知。它是:

我的
文档有问题。Word VBA中的SaveAs
方法对于大型Word文档,似乎保存操作是异步的,即调用
.SaveAs
后,它会立即返回,但是对于大型Word文档,实际的保存操作可能尚未完成,正在另一个线程中进行

所以我想问的是,是否有办法检测实际的保存操作是否正在进行或完成


我使用Delphi调用Word的自动化接口,如果它在讨论这个问题时有意义的话,但我不这么认为?

办公自动化的saveas是进程外调用,因此它总是在单独的进程上运行,因此本质上是异步的

除非发出异常,否则根本无法捕获通知。

它是:

If ActiveDocument.Saved = True then
/* 'do something */
End If
如果该文档以前没有应用过
.SaveAs
,您也可以通过
.Path
检查它(即
如果是ActiveDocument.Path“”,则….


请注意,后台保存是异步的,而不是手动调用的保存-这是由
.Saved

检查的。您好,我遇到的问题似乎与SaveAs方法或Saved属性有关,但在调用Range.InsertFile(aFileName)之后,一个文件名将被解锁,而你不知道它何时会被解锁……但这与你最初的问题无关。也许你可以改变你的问题,使之与你接受另一个答案的原因相匹配belowl@Otaku,谢谢你的帮助。您建议检查保存的属性,但根据我的经验,它将不起作用。正如StevenzNPaul的回答所解释的,即使实际的保存工作尚未完成,保存的属性也将变为真实。StevenzNPaul的回答解释说不可能“知道实际的保存操作是否完成”,所以我接受了他的回答。我希望这一点现在已经清楚了。还是谢谢你!我仍然不确定这与InsertFile有什么关系。请看一下这个线程-它将告诉您如何使Save方法同步-