我有一个项目,需要我在Word中打开文档并等待文档打开。用户然后需要编辑文档,打印或保存文档,然后手动关闭文档。当文档(或Word本身)关闭时,我想在Access中继续使用我的VBA脚本。MS Access VBA检查Word是否已关闭?
我有以下代码
If Len(Dir(sDocName)) > 0 Then
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
' Launch Word
Set wordApp = New Word.Application
' Open the document
With wordApp
Set wordDoc = .Documents.Open(sDocName, , False)
' Pass data
With wordDoc
.Variables("bmArchitectCompanyName").Value = "Hello"
.Variables("bmArchitectCompanyAddress").Value = "Hello"
.Variables("bmArchitectCompanyPostCode").Value = "Hello"
.Variables("bmArchitectContactFirstName").Value = "Hello"
.Variables("bmProjectTitle").Value = ProjectTitle
.Fields.Update
End With
.Visible = True
.Activate
Do Until wordApp Is Nothing
' Wait for Word to be closed
Loop
' Display a success message
MsgBox "Success!"
End With
End If
然而,做循环永远不会退出。
如何检查通过VBA启动的文档是否已由用户从我的VBA代码中关闭?
你在哪里关闭wordApp?由于它仍在运行,循环将永远不会停止。 – INOPIAE
我将在if语句(未包含在上面)后关闭wordApp对象。一旦我知道应用程序已被用户关闭,我会将对象设置为Nothing。我需要知道应用程序何时关闭。 – alcomcomputing
所以等待循环必须包含一个DoEvents循环,然后检查文档是否关闭,否则coninue DoEvents循环。 –