Код vba неожиданно обнаруживает проблемы с перечислением - PullRequest
0 голосов
/ 16 июня 2020

Этот визуальный базовый c код, связанный с Outlook, раньше работал без проблем

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).

Однако я бы предпочел использовать перечисления и хотел бы понять, почему все они пусты.

1 Ответ

0 голосов
/ 16 июня 2020

Если вы хотите передавать буквальные константы вместо чисел, вам нужно добавить ссылку COM в Outlook. Подробнее об этом читайте в статье Как добавить ссылку на библиотеку объектов в VBA .

enter image description here

Также вы можете попробовать перед получением папки используйте метод Logon. См. NameSpace.Logon для получения дополнительной информации.

...