Cody O'Meara Ответов: 0

Почему я получаю эту ошибку в VBA при импорте электронных писем из outlook?


Мне нужно импортировать электронные письма из определенной папки в Outlook в excel с помощью VBA.

Получение следующей ошибки в этой строке:
Ошибка времени выполнения 1004 метод диапазона объекта _global не удалось.
Range("eMail_subject").Offset(i, 0).Value = OutlookMail.Subject

Предполагая, что это недопустимый тип данных или что-то в этом роде. Также предполагая, что это произойдет со всеми диапазонами ниже.


Я использую следующий код из этого источника:
Как импортировать электронную почту Outlook в Excel с помощью VBA | Как Преуспеть[^]
Sub test()

Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer

Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("veeam")

i = 1

For Each OutlookMail In Folder.Items
    If OutlookMail.ReceivedTime >= Range("B1").Value Then
        Range("eMail_subject").Offset(i, 0).Value = OutlookMail.Subject
        Range("eMail_date").Offset(i, 0).Value = OutlookMail.ReceivedTime
        Range("eMail_sender").Offset(i, 0).Value = OutlookMail.SenderName
        Range("eMail_text").Offset(i, 0).Value = OutlookMail.Body
        
        i = i + 1
    End If
Next OutlookMail

Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing


End Sub


Что я уже пробовал:

Нашел только несколько ресурсов. Что-то связанное с текстом вместо числа, а также наоборот, но, похоже, становится хуже.

Gerry Schmitz

Все это зависит от того, как вы отформатировали свой лист Excel (который никто другой не может видеть), говорится в статье.

Richard MacCutchan

Используйте отладчик в макросе, чтобы увидеть, какие значения он использует в операторе Range и почему они могут быть неправильными.

0 Ответов