簡體   English   中英

將Outlook電子郵件信息訪問到Excel工作表(VBA)中:正文,HTMLbody,RTFbody為<>為空

[英]Accessing Outlook email info into excel worksheet (VBA): body, HTMLbody, RTFbody is <> empty

在此先感謝您的幫助。我的Googleness今天使我失望。

我已經找到了許多有關使用excel VBA訪問電子郵件信息的資源,並且在大多數情況下,我可以使它們工作。 但是由於某種原因,最關鍵的部分(電子郵件正文)為空白。

Dim myOlApp As Object, myNameSpace As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myfolders = myNameSpace.Folders
n = 1
Do Until myfolders.Item(n) = "xxxxx"
    n = n + 1
Loop
Set myfolder = myfolders.Item(n)
Set myfolder2 = myfolder.Folders("Inbox")
c = 12
n = 36
For Each Item In myfolder2.Items
    itsj = Item.Subject
    itrt = Item.ReceivedTime
    itbo = Item.Body
    Cells(n, c) = itrt
    Cells(n, c + 1) = itsj
    Cells(n, c + 2) = itbo
    n = n + 1
 Next Item

除了Item.Body,一切似乎都可以正常工作。 我得到一個

運行時錯誤“ 287”:應用程序定義或對象定義的錯誤

查看.body或就此而言:.HTMLBody或.RTFBody,在“本地”視圖中,它們都顯示為<>的值。 我已經嘗試了許多來自不同人的不同電子郵件,並且總是得到相同的結果。 我還在“本地”文件夾中深入研究了所有其他對象,以直接引用電子郵件並獲得相同的結果。 我正在使用2010 Outlook和Excel。

謝謝!

我對我沒有任何問題,除了它實際上沒有在牢房中放任何東西。 因此,我只需對其進行修改,然后將其放入Application.ActiveSheet中:

Dim myOlApp As Object, myNameSpace As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myfolders = myNameSpace.Folders
n = 1
Do Until myfolders.Item(n) = "xxxxx"
    n = n + 1
Loop
Set myfolder = myfolders.Item(n)
Set myfolder2 = myfolder.Folders("Inbox")
c = 1
n = 1
For Each Item In myfolder2.Items
    itsj = Item.Subject
    itrt = Item.ReceivedTime
    itbo = Item.Body
    Application.ActiveSheet.Cells(n, c) = itrt
    Application.ActiveSheet.Cells(n, c + 1) = itsj
    Application.ActiveSheet.Cells(n, c + 2) = itbo
    n = n + 1
 Next Item

我正在使用Office 2010。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM