Vba 新建Outlook。启动Outlook 2013时,应用程序抛出错误429

Vba 新建Outlook。启动Outlook 2013时,应用程序抛出错误429,vba,outlook,Vba,Outlook,启动Outlook 2013时,我收到错误429“Active X组件无法创建对象”。调试时,我发现它发生在Set oOutlook=New Outlook.Application。但是,当我在Outlook启动后运行代码时,它工作正常。知道为什么会这样吗 Option Explicit Private WithEvents oOutlook As Outlook.Application Private WithEvents oMailItems As Outlook.Items Privat

启动Outlook 2013时,我收到错误429“Active X组件无法创建对象”。调试时,我发现它发生在
Set oOutlook=New Outlook.Application
。但是,当我在Outlook启动后运行代码时,它工作正常。知道为什么会这样吗

Option Explicit
Private WithEvents oOutlook As Outlook.Application

Private WithEvents oMailItems As Outlook.Items
Private ns As NameSpace
Private Inbox As MAPIFolder
Private InboxItems As Outlook.Items
Private FailNotice As MAPIFolder
Private zsForwardTo As String

Private Sub Class_Initialize()
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set InboxItems = Inbox.Items

    Set oOutlook = New Outlook.Application

    Set oMailItems = oOutlook.Session.GetDefaultFolder(olFolderInbox).Items
    Set FailNotice = Inbox.Folders("Fail Notices")
End Sub

基于Max的评论,我想发布一个答案,因为这真的很有帮助,而且我在网上其他任何地方都找不到。马克斯写道:


我遇到了一个类似的问题,我认为Outlook在创建一个新实例时遇到了一个问题,而它本身并没有完全启动。最后,我没有创建新的应用程序,而是在现有的应用程序中工作

我不确定如何使用现有的应用程序,但我是这样工作的:oOutlook变量现在是不必要的,可以用简单的单词“application”来代替。修订后的代码如下所示:

Option Explicit
Private WithEvents oMailItems As Outlook.Items
Private ns As NameSpace
Private Inbox As MAPIFolder
Private InboxItems As Outlook.Items
Private FailNotice As MAPIFolder
Private zsForwardTo As String

Private Sub Class_Initialize()
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set InboxItems = Inbox.Items

    Set oMailItems = Application.Session.GetDefaultFolder(olFolderInbox).Items
    Set FailNotice = Inbox.Folders("Fail Notices")
End Sub

您是否在
Set oOutlook=CreateObject(“Outlook.Application”)
中遇到相同的错误?是的,我确实遇到了相同的错误。我遇到了一个类似的问题,我认为Outlook在创建一个新实例时遇到了问题,而它本身并没有完全启动。最后,我没有创建新的应用程序,而是在现有的应用程序中工作。谢谢,最终工作成功了。谢谢