Как решить ошибку «1004» в VBA при импорте почты Outlook в Excel - PullRequest
1 голос
/ 18 апреля 2019

Я новичок в использовании VBA. Полагаю, что я хочу автоматизировать экспорт данных из почты Outlook и импортировать в файл Excel XLSX, поскольку я искал учебник для этого и нашел этот учебник https://www.exceltrainingvideos.com/get-data-from-outlook-into-excel-worksheet/ Я выполнил следующие действиясоздав модуль, как я вставил в этот модуль этот код

Sub GetDataFromOutlook()
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("SSV")

i = 1

    For Each OutlookMail In Folder.Items
    If OutlookMail.ReceivedTime >= Range("Email_Receipt_Date").Value And 
Date <= 30 / apr / 2019 Then

    Range("email_Subject").Offset(i, 0) = OutlookMail.Subject
    Range("email_Subject").Offset(i, 0).Columns.AutoFit
    Range("email_Subject").Offset(i, 0).VerticalAlignment = xlTop
    Range("email_Date").Offset(i, 0).Value = OutlookMail.ReceivedTime
    Range("email_Date").Offset(i, 0).Columns.AutoFit
    Range("email_Date").Offset(i, 0).VerticalAlignment = xlTop
    Range("email_Sender").Offset(i, 0).Value = OutlookMail.SenderName
    Range("email_Sender").Offset(i, 0).Columns.AutoFit
    Range("email_Sender").Offset(i, 0).VerticalAlignment = xlTop
    Range("email_Body").Offset(i, 0).Value = OutlookMail.Body
    Range("email_Body").Offset(i, 0).Columns.AutoFit
    Range("email_Body").Offset(i, 0).VerticalAlignment = xlTop
    i = i + 1
End If

Next OutlookMail

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




End Sub

и, наконец, когда я пытаюсь запустить его, я обнаружил эту ошибку

Run-error '1004' Метод 'Range'объекта '_Global) не удалось

Это может быть ошибка в файле Excel у меня есть?

1 Ответ

1 голос
/ 18 апреля 2019

Да, ошибка относится к вашему Excel листу . Он сообщает, что не смог найти эти ranges. Вы должны создать их на вашем sheet перед запуском макроса.

Чтобы создать custom Range, вы должны нажать на cell и затем отредактировать его имя, как на этом рисунке:

enter image description here


Надеюсь, это поможет.

Примечание : Date <= 30 / apr / 2019 не будет работать. Измените его на Date <= "30/04/2019", и оно будет работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...