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)参数是我用于搜索的开始日期,我已经删除了代码以使它更简单,现在它将搜索整个收件箱。
代码是否运行良好的实践
请参阅MSDN? '(ddate as Date)' – 0m3r
@ Om3r感谢您指出这一点,我编辑了代码并完美运行。 – Meesha