通过这种方式获得的句柄是否可以用于从 Excel VBA 访问 WORD 的 运行 实例?
Could the handle obtained in this way be used to access a running instance of WORD from Excel VBA?
以下是业余爱好者的问题,首先表示歉意
我正在使用 Excel VBA 到 运行 WORD 中的邮件合并。一个问题是,当 Excel VBA 程序启动时,WORD 可能已经 运行ning,在这种情况下,我想使用该 WORD 实例而不是打开一个新实例。但是,当尝试使用“获取对象”执行此操作时,我收到 运行 时间错误“429”。我太业余了,无法解决这个问题,无论如何(从论坛和 MS 页面)了解到它在我的计算机型号上可能无法解决。
通过 djikay 的上述代码获得的句柄可以让我在打开 WORD 时以某种方式引用它来解决这个问题吗?我自然会搜索 WORD windows 而不是 Excel。
使用 API 查找 Word 应用程序句柄是可能的,但为什么要这样做,因为 VBA 提供了一个简单的代码行来完成您的需要?
Dim objWord as Object' or Word.Application referencing Word (Microsoft Word xx.x Object Lybray)...
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If err.Number <> 0 Then
err.Clear: On Error GoTo 0
MsgBox "No any Word open session..."
Else
On Error GoTo 0
MsgBox objWord.ActiveWindow.Caption
End If
引用 Word,您将受益于智能感知建议。
在没有现有会话的情况下也能捕获错误。
以下是业余爱好者的问题,首先表示歉意
我正在使用 Excel VBA 到 运行 WORD 中的邮件合并。一个问题是,当 Excel VBA 程序启动时,WORD 可能已经 运行ning,在这种情况下,我想使用该 WORD 实例而不是打开一个新实例。但是,当尝试使用“获取对象”执行此操作时,我收到 运行 时间错误“429”。我太业余了,无法解决这个问题,无论如何(从论坛和 MS 页面)了解到它在我的计算机型号上可能无法解决。
通过 djikay 的上述代码获得的句柄可以让我在打开 WORD 时以某种方式引用它来解决这个问题吗?我自然会搜索 WORD windows 而不是 Excel。
使用 API 查找 Word 应用程序句柄是可能的,但为什么要这样做,因为 VBA 提供了一个简单的代码行来完成您的需要?
Dim objWord as Object' or Word.Application referencing Word (Microsoft Word xx.x Object Lybray)...
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If err.Number <> 0 Then
err.Clear: On Error GoTo 0
MsgBox "No any Word open session..."
Else
On Error GoTo 0
MsgBox objWord.ActiveWindow.Caption
End If
引用 Word,您将受益于智能感知建议。
在没有现有会话的情况下也能捕获错误。