我试图在共享邮箱中提取Outlook邮件的详细信息 .
为了方便同事,我在Excel中创建了宏 .
它正在倒下:
sender = olItem.sender
在Outlook VBA中,它会提取电子邮件发件人的姓名 .
在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