我有一個項目,需要我在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循環。 –