2016-01-20 74 views
0
Sub Merge_daily_emails1() 

Dim myOlApp As New Outlook.Application 
Dim myNameSpace As Outlook.Namespace 
Dim myInbox As Outlook.MAPIFolder 
Dim Atch As Object 
Set myNameSpace = myOlApp.GetNamespace("MAPI") 
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox) 
Dim filteredItems As Outlook.Items 
Dim itm As Object 
Dim strFilter As String 

strFilter = "@SQL=" & Chr(34) & "urn:schemas:httpmail:subject" & Chr(34) & " like '%Daily Reports%'" 
Set filteredItems = myInbox.Items.Restrict(strFilter) 
AttachmentPath = "H:\" 
If filteredItems.count > 0 Then 
    For Each itm In filteredItems 
     If itm.Attachments.count <> 0 Then 
      For Each Atch In itm.Attachments 
       Atch.SaveAsFile AttachmentPath & Atch.Filename 
       Exit For 
      Next 
     Else 
      MsgBox "Does not Have an Attachment" 
     End If 
    Next 
End If 
Set myOlApp = Nothing 

End Sub 

您好,我當你看到我試圖下載所有從我的收件箱中的電子郵件包含在其主題行中的「每日報告」的附件。我面臨的問題是,我下載的一些文件(Excel)出來是0kb大小,只是他們的名字爲「@」,而當我打開他們在展望他們似乎打開罰款。我最好的猜測是,因爲這封電子郵件是舊的,並使用企業文件庫系統打開,我無法以正確的方式下載文件。有沒有人遇到類似的情況?下載附件的大小0KB只有「@」作爲自己的名字

編輯(ddate as Date)參數是我用於搜索的開始日期,我已經刪除了代碼以使它更簡單,現在它將搜索整個收件箱。

+0

代碼是否運行良好的實踐

請參閱MSDN? '(ddate as Date)' – 0m3r

+0

@ Om3r感謝您指出這一點,我編輯了代碼並完美運行。 – Meesha

回答

0

您可以瓦納從子刪除(ddate As Date)並宣佈AttachmentPathDim attachmentPath As String也設置顯式的選項爲關上通常沒有Option Explicit Statement

+0

我可以從我的收件箱中的最近電子郵件下載文件,它只是舊的電子郵件,使用企業價值是我將附件名稱作爲「@」的地方。 – Meesha

相關問題