Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Outlook mailitem.sender在Excel中生成错误287_Vba_Excel_Outlook_Mailitem - Fatal编程技术网

Vba Outlook mailitem.sender在Excel中生成错误287

Vba Outlook mailitem.sender在Excel中生成错误287,vba,excel,outlook,mailitem,Vba,Excel,Outlook,Mailitem,我正在尝试提取共享邮箱中Outlook邮件项目的详细信息 为了方便同事,我在Excel中创建了宏 它的下降速度是: sender = olItem.sender 在OutlookVBA中,它提取电子邮件发件人的名称 在Excel中,它会导致 运行时错误287应用程序定义或用户定义错误 每封邮件都会发生这种情况。如果我删除/注释掉出错的代码行,那么它会成功地拉出主题行以及收到的日期和时间 Sub GetEmailData() Dim olApp As Outlook.Application D

我正在尝试提取共享邮箱中Outlook邮件项目的详细信息

为了方便同事,我在Excel中创建了宏

它的下降速度是:

sender = olItem.sender
在OutlookVBA中,它提取电子邮件发件人的名称

在Excel中,它会导致

运行时错误287应用程序定义或用户定义错误

每封邮件都会发生这种情况。如果我删除/注释掉出错的代码行,那么它会成功地拉出主题行以及收到的日期和时间

Sub GetEmailData()

Dim olApp As Outlook.Application
Dim NS As Outlook.Namespace
Dim Inbox As Outlook.MAPIFolder
Dim objOwner As Outlook.Recipient
Dim olItem As Outlook.MailItem
Dim subject As String
Dim sender As String
Dim senddate As String
Dim homebook As Workbook, homesheet As Worksheet

Set homebook = Workbooks("Email Log.xlsm")
Set homesheet = homebook.Worksheets("Sheet1")

'Clear contents
homesheet.Range("A4:D100").Delete

Set olApp = Outlook.Application

Set NS = olApp.GetNamespace("MAPI")
Set objOwner = NS.CreateRecipient("***email address of mailbox***")
Set Inbox = NS.GetSharedDefaultFolder(objOwner, olFolderInbox)

n = 4

For Each olItem In Inbox.Items
    subject = olItem.subject
    sender = olItem.sender
    senddate = olItem.ReceivedTime
    homesheet.Range("B" & n).Value = subject
    homesheet.Range("C" & n).Value = sender
    homesheet.Range("A" & n).Value = senddate
    n = n + 1
Next

homesheet.Range("A1").Value = "Last Updated: " & Now()
homesheet.Range("A2").Value = "Number of Items: " & Inbox.Items.Count

End Sub

我不能重现你的错误。您的收件箱是否包含没有发件人的邮件?可以在任何邮箱中存储文件、便笺和草稿。我可以确认邮箱中只包含已在中接收的电子邮件,并且所有邮件都有发件人。如果目标数据的代码正常工作,那么您认为我的计算机上的Excel设置有问题吗?例如,我启用了哪些库等?这种情况是否仅针对特定消息?它是否发生在您处理大量(100+个)邮件之后?不,每封邮件都会发生这种情况,并且邮件大小只有kb,没有附件。如果我删除/注释掉了出错的代码行,那么其余的代码就可以正常工作了,它成功地拉出了主题行和收到的日期和时间。