首页 > 解决方案 > Application.GetNamespace 上的 Outlook 2016 VBA 类型不匹配(Windows 更新后)

问题描述

我已经运行了一年的 Outlook 2016 VBA 宏来检查到达我收件箱的电子邮件。今天,在安装 Windows 10 更新后,运行此宏时出现类型不匹配错误。错误行是Set olNs = Application.GetNamespace("MAPI")下面的行:

Private Sub Application_Startup()
    Dim olNs As Outlook.NameSpace
    Dim Inbox  As Outlook.MAPIFolder
    Dim olRecip As Recipient
    Dim dt As String
    Dim strFile_Path As String

    dt = Format(CStr(Now), "yyyy_mmm_dd_hh_mm")
    strFile_Path = "d:\temp\parking.log"
    Open strFile_Path For Append As #1
    Write #1, dt & " " & "Application_Startup() triggered"
    Close #1


    Set olNs = Application.GetNamespace("MAPI")
    Set olRecip = olNs.CreateRecipient("me@gmail.com")
    Set Inbox = olNs.Folders("me@gmail.com").Folders("Inbox")
    Set Items = Inbox.Items
End Sub

知道如何解决这个问题吗?

标签: vbaoutlookwindows-updateoutlook-2016

解决方案


首先,您需要确保正确设置 COM 引用。

在此处输入图像描述

您可以尝试在不设置局部变量的情况下运行代码:

Private Sub Application_Startup() 

 MsgBox "Welcome, " & Application.GetNamespace("MAPI").CurrentUser 

 Application.ActiveExplorer.WindowState = olMaximized 

End Sub

推荐阅读