Vba 从未读项目下载附件,并且来自特定发件人
我想从MS Outlook中未读和从特定发件人收到的电子邮件中下载所有附件 我找到了一个代码,可以从所有未读的电子邮件中下载所有附件。 并试图适应它 但是,过滤器工作不正常。这表明没有这样的电子邮件Vba 从未读项目下载附件,并且来自特定发件人,vba,outlook,outlook-2010,outlook-filter,Vba,Outlook,Outlook 2010,Outlook Filter,我想从MS Outlook中未读和从特定发件人收到的电子邮件中下载所有附件 我找到了一个代码,可以从所有未读的电子邮件中下载所有附件。 并试图适应它 但是,过滤器工作不正常。这表明没有这样的电子邮件 Filter = "[Unread] = True And [SenderEmailAddress] = 'yrybchuk@gmail.com'" 下面是整个代码: Option Explicit Public Sub Example() Dim oOlAp As Object Dim olNs
Filter = "[Unread] = True And [SenderEmailAddress] = 'yrybchuk@gmail.com'"
下面是整个代码:
Option Explicit
Public Sub Example()
Dim oOlAp As Object
Dim olNs As Outlook.Namespace
Dim Inbox As Outlook.MAPIFolder
Dim Items As Outlook.Items
Dim Item As Outlook.MailItem
Dim Atmt As Attachment
Dim Filter As String
Dim FilePath As String
Dim AtmtName As String
Dim i As Long
'// Set Inbox Reference
Set oOlAp = GetObject(, "Outlook.application")
Set olNs = oOlAp.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
FilePath = "C:\Users\irybchuk\Documents\"
Filter = "[Unread] = True And [SenderEmailAddress] = 'yrybchuk@gmail.com'"
Set Items = Inbox.Items.Restrict(Filter)
'// Loop through backwards
For i = Items.Count To 1 Step -1
Set Item = Items.Item(i)
DoEvents
If Item.Class = olMail Then
Debug.Print Item.Subject ' Immediate Window
For Each Atmt In Item.Attachments
AtmtName = FilePath & Atmt.FileName
Atmt.SaveAsFile AtmtName
Next
End If
Next
Set Inbox = Nothing
Set Items = Nothing
Set Item = Nothing
Set Atmt = Nothing
Set olNs = Nothing
End Sub
我相信在这里:可以描述出可能的解决方案是如何更换过滤线。然而,我做不到 您的过滤器似乎适合我,但这里有一个不同的您可以使用
或者更好的方法是使用附件来改进循环
记得更新%yrybchuk@gmail.com%
供参考如果代码是从Outlook运行的,则不需要
oOlAp=GetObject(,“Outlook.application”)
您的过滤器似乎适合我,但这里有一个不同的您可以使用
或者更好的方法是使用附件来改进循环
记得更新%yrybchuk@gmail.com%
供参考如果代码是从Outlook运行的,则不需要
oOlAp=GetObject(,“Outlook.application”)
我看不出你的过滤器有什么问题,你在哪个办公室,你有没有收到任何错误?我正在使用MS office 2010,没有收到任何错误。问题是,它找不到这样的电子邮件-这表明盒子里并没有这样的电子邮件。如果我只对未读邮件使用过滤器,它会找到一封。我看不出你的过滤器有什么问题,你在哪个办公室,你有没有收到任何错误?我使用的是MS office 2010,没有收到任何错误。问题是,它找不到这样的电子邮件-这表明盒子里并没有这样的电子邮件。如果我只对未读的邮件使用过滤器,它会找到一个。我使用了受限过滤器,它工作了。谢谢。我使用了受限过滤器,效果很好。非常感谢。
Filter = "@SQL=" & Chr(34) & "urn:schemas:httpmail:fromname" & _
Chr(34) & " Like '%yrybchuk@gmail.com%' AND " & _
Chr(34) & "urn:schemas:httpmail:read" & _
Chr(34) & "=0"
Filter = "@SQL=" & Chr(34) & "urn:schemas:httpmail:fromname" & _
Chr(34) & " Like '%yrybchuk@gmail.com%' AND " & _
Chr(34) & "urn:schemas:httpmail:hasattachment" & _
Chr(34) & "=1 AND " & _
Chr(34) & "urn:schemas:httpmail:read" & _
Chr(34) & "=0"