2016-01-20 78 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

相关问题