我正面临一个恼人的问题,我只是想从另一个Word实例安排一个异步宏,这个实例恰好是.doc文件。
意思是,在ThisDocument
命名空间中,我有以下代码片段:
Public Sub Document_Open()
Set Obj = New Word.Application
Obj.OnTime Now + TimeValue("00:00:01"), "Module1.Test"
End Sub
由于以下原因,我已声明了Word的新对象:
并使用简单的Module1
MsgBox
的模块
Public Sub Test()
MsgBox "hhh"
End Sub
毋庸置疑,没有任何反应,我无法检查OnTime
函数返回的内容。
我也尝试了以下组合:
"!Module1.Test"
"c:\\....\\file.doc!Module1.Test"
我在这里缺少什么?
答案 0 :(得分:0)
由Word.Application
对象表示的新创建的Word应用程序没有打开文档。因此,没有" Module1"据他所知。您想要从同一文档运行代码的事实并不重要。它是Word的另一个实例。
这样的工作:
'''''''' ThisDocument
Option Explicit
Private Sub Document_Open()
Dim res As VbMsgBoxResult
Dim Obj As Word.Application
If Application.Visible Then
res = MsgBox("Hello", vbOKCancel, "Hi!")
Else
Exit Sub
End If
If res = vbOK Then
Set Obj = New Word.Application
Obj.Documents.Open "C:\Users\conio\Desktop\Hello.docm", , True
Obj.OnTime Now + TimeValue("00:00:01"), "Module1.Foo"
End If
End Sub
'''''''' Module1
Public Sub Foo()
If Not Application.Visible Then
MsgBox "Foo"
Application.Quit
End If
End Sub
也许您想要使用不同的检查来区分交互式运行和无人值守运行。