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方法同步-