Vba 搜索带有特定主题标题的电子邮件(如果未读),并将附件保存到文件夹中
我正在使用以下vba代码,该代码应搜索具有特定主题标题(即主题为“测试”)的所有电子邮件 然后,仅当电子邮件未读时,才将该电子邮件中的附件保存到文件夹中 可能有一封或几封带有主题测试的电子邮件,因此我希望所有带有主题测试的未读电子邮件的附件都保存到文件夹中 这是我的密码:Vba 搜索带有特定主题标题的电子邮件(如果未读),并将附件保存到文件夹中,vba,email,outlook,Vba,Email,Outlook,我正在使用以下vba代码,该代码应搜索具有特定主题标题(即主题为“测试”)的所有电子邮件 然后,仅当电子邮件未读时,才将该电子邮件中的附件保存到文件夹中 可能有一封或几封带有主题测试的电子邮件,因此我希望所有带有主题测试的未读电子邮件的附件都保存到文件夹中 这是我的密码: Sub Work_with_Outlook() Set olApp = CreateObject("Outlook.Application") Dim olNs As Outlook.Namespace
Sub Work_with_Outlook()
Set olApp = CreateObject("Outlook.Application")
Dim olNs As Outlook.Namespace
Dim Fldr As Outlook.MAPIFolder
Dim myItem As Object
Dim myAttachment As Outlook.Attachment
Dim I As Long
Dim olMail As Variant
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
Set myTasks = Fldr.Items
Set UnRead = myTasks.Restrict("[UnRead] = False")
Set olMail = myTasks.Find("[Subject] = ""test""")
If Not (olMail Is Nothing) And UnRead.Count = 0 Then
For Each myItem In myTasks
If myItem.Attachments.Count <> 0 Then
For Each myAttachment In myItem.Attachments
If InStr(myAttachment.DisplayName, ".txt") Then
I = I + 1
myAttachment.SaveAsFile "\\uksh000-file06\Purchasing\NS\Unactioned\" & myAttachment
End If
Next
End If
Next
For Each myItem In myTasks
myItem.UnRead = False
Next
MsgBox "Scan Complete."
Else
MsgBox "There Are No New Supplier Requests."
End If
End Sub
这在某种程度上是可行的,如果我只有一封主题为“测试”的电子邮件,而且它还未读,那么脚本将从该电子邮件中获取附件并将其保存到我的文件夹中。但是,如果我有一封主题为“test”的电子邮件已读,而另一封主题为“test”的电子邮件未读,那么代码将无法工作
有人能告诉我哪里出了问题吗?提前感谢看起来您需要将这两个条件合并为一个条件,并使用Find/FindNext或Restrict方法获取Items类的实例,该类包含与您的条件对应的所有项目。例如:
Set resultItems = myTasks.Restrict("[UnRead] = False AND [Subject] = ""test""")
有关MSDN中的信息,请参阅
您还可以在以下文章中找到示例代码: