Ошибка времени выполнения «13» Несоответствие типа для макроса Outlook VBA [дубликат]

В моем случае у меня была строка Ids, и ее нужно было передать на char, иначе результат был закодирован в двоичный формат:

SELECT CAST(GROUP_CONCAT(field SEPARATOR ',') AS CHAR) FROM table
5
задан Community 20 July 2015 в 22:02
поделиться

1 ответ

Папка Outlook имеет тип объекта по умолчанию (MailItem, AppointmentItem, ContactItem и т. д.), но может фактически содержать любой тип элемента. Таким образом, вы попадаете в элемент, который не является MailItem, и в силу цикла For Each пытается назначить его переменной типа MailItem.

Вам необходимо выполнить цикл с помощью общего объекта Object и протестируйте TypeName.

Dim oItem As Object
Dim oMail As MailItem

For Each oItem In Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
    If TypeName(oItem) = "MailItem" Then
        Set oMail = oItem

        'do stuff with omail
    End If
Next oItem
8
ответ дан Dick Kusleika 4 September 2018 в 06:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: