【发布时间】:2019-04-18 08:23:38
【问题描述】:
我是使用 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
最后,当我尝试运行它时,我发现了这个错误
运行错误“1004” 对象 '_Global) 的方法 'Range' 失败
可能是我的excel文件出错了?
【问题讨论】:
-
Date <= 30 / apr / 2019不会像你想的那样做。 -
您将代码放入 Excel 模块还是 Outlook 模块?它需要在 Excel 端。