vba代码突然遇到枚举问题

vba code suddenly encounters problems with enumeration

这段与 outlook 相关的 visual basic 代码过去没有问题

Sub cmdExample()

    Dim myOlApp As Object
    Set myOlApp = CreateObject("Outlook.Application")
    Set myoSession = myOlApp.Session
    Set myoCalendar = myoSession.GetDefaultFolder(olFolderCalendar)
End Sub

现在我得到运行时错误 5(无效的过程调用或参数)

调试发现的原因:在运行时olFolderCalendar 为空(顺便说一句,其他枚举如olAppointmentItem、olBusy 也有同样的问题)。我在上面代码中的解决方法是调用 .GetDefaultFolder(9).

但是我更愿意使用枚举,我想了解为什么它们都是空的。

如果您想传递文字常量而不是数字,您需要添加对 Outlook 的 COM 引用。在 How to Add an Object Library Reference in VBA 文章中阅读更多相关信息。

另外,您可以尝试使用Logon方法获取文件夹。有关详细信息,请参阅 NameSpace.Logon