【发布时间】:2023-04-02 02:10:01
【问题描述】:
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,名称为 "@"。
我最好的猜测是,由于这些电子邮件很旧并且使用 enterprise vault 系统打开,我无法以正确的方式下载文件。
Edit (ddate as Date) 参数是我用于搜索的开始日期,我删除了代码以使其更简单,现在它将搜索整个收件箱。
【问题讨论】:
-
代码运行了吗?
(ddate As Date) -
@Om3r 感谢您指出这一点,我已经编辑了代码并且它运行完美。