我需要搜索已发送邮件中的邮件,在当前日期发送,主题为"任务已完成"。有时,Subject可能会有其他文本,例如07/01/2017上的任务已完成或任务已完成01/09/2017。
我找到了这个Outlook VBA代码,它显示了找到的邮件。我希望代码在Excel中使用通配符搜索选项运行并打开Excel文件。
我尝试使用通配符" *
"搜索主题,例如"任务已完成*
"和"任务已完成&格式(日期," dd / mm / yyyy")"我得到了语法错误/编译错误
Sub Test()
Dim olApp As Outlook.Application
Dim olNs As NameSpace
Dim Fldr As MAPIFolder
Dim olMail As Outlook.MailItem
Dim i As Integer
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderSentMail)
i = 1
For Each olMail In Fldr.Items
If InStr(olMail.Subject, "Task Completed on 07/01/2017") <> 0 Then
olMail.Display
i = i + 1
End If
Next olMail
End Sub
我正在使用Office 2010。
答案 0 :(得分:2)
要循环浏览 已发送邮件 文件夹中的所有项目,包括您可能拥有的日历活动,请使用Dim olMail As Object
(而不是{{1} })。
要在电子邮件标题的某处查找“任务已完成”字符串,请使用AS Outlook.MailItem
(在搜索到的字符串之前和之后添加通配符If olMail.Subject Like "*Task Completed*" Then
)。
我添加了两行代码,将所有匹配的电子邮件输出到A列和B列的工作表中。
<强>代码强>
*