【问题标题】:How to solve error'1004' in vba when import outlook mail to excel将outlook邮件导入excel时如何解决vba中的错误'1004'
【发布时间】: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 &lt;= 30 / apr / 2019 不会像你想的那样做。
  • 您将代码放入 Excel 模块还是 Outlook 模块?它需要在 Excel 端。

标签: excel vba


【解决方案1】:

是的,该错误与您的 Excel 工作表 相关。它报告说它无法找到那些ranges。在启动宏之前,您必须在 sheet 上创建它们。

要创建custom Range,您必须单击您的cell,然后编辑其名称,如下图所示:


希望这会有所帮助。

注意Date &lt;= 30 / apr / 2019 将不起作用。在Date &lt;= "30/04/2019" 中更改它,它将按预期工作。

【讨论】:

  • 很抱歉打扰,但我在这些行中发现了同样的错误 Range("Email_Subject").Offset(i, 0) = OutlookMail.Subject ...... ..所以我认为这些单元格中的 excel 文件有一些错误
  • 没问题,您是否创建了文件工作所需的所有ranges?为了工作,您的工作表需要有这些Ranges"email_Subject""email_Date""email_Sender""email_Body"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 2021-09-11
  • 2010-11-18
相关资源
最近更新 更多