【发布时间】:2014-02-22 14:17:23
【问题描述】:
我正在尝试使用这段代码从 VBA excel 中关闭 OneNote 应用程序:
Sub closeOneNote()
Dim oneNoteApp As Object
On Error Resume Next
Set oneNoteApp = GetObject(, "OneNote.Application")
If Err.Number = 0 Then
oneNoteApp.Quit
Else
Err.Clear
End If
End Sub
当我尝试使用 Outlook 而不是 OneNote 时,它可以正常工作并且 Outlook 会关闭。我想知道是不是因为 OneNote 不是一个支持通过 VBA 实现自动化的应用程序。如下链接所示,页面底部的表格列出了所有 Ican 引用的顶级 Office 对象及其类名,OneNote 不在其中:
Creation of Object Variables to Automate Another Office Application
关于如何关闭应用程序的任何想法和建议(不是笔记本本身,只有正在运行的应用程序..)
谢谢
【问题讨论】:
-
你试过摆脱
On Error Resume Next你也许可以调试这个... -
给出错误 429:ActiveX 组件无法创建对象或返回对此对象的引用。这是否意味着 OneNote 是我无法引用的 Office 对象?
-
哪一行会引发错误?
GetObject或.Quit? -
.GetObject 引发错误
-
使用
CreateObject获取OneNote 应用程序,或将其标注为对象变量并使用CreateObject或Dim as New` 方法。Quit仍然会失败。根本不支持。