Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA with Outlook:如何使用AdvancedSearch方法在Outlook中搜索特定电子邮件?_Excel_Email_Outlook_Vba - Fatal编程技术网

Excel VBA with Outlook:如何使用AdvancedSearch方法在Outlook中搜索特定电子邮件?

Excel VBA with Outlook:如何使用AdvancedSearch方法在Outlook中搜索特定电子邮件?,excel,email,outlook,vba,Excel,Email,Outlook,Vba,我有一个程序在Outlook的Sent Items文件夹中搜索每个电子邮件,直到它在指定的电子邮件中找到标记(URL),打开它并发送回复 但是我在“已发送邮件”文件夹中有很多电子邮件,所以要花很多时间来搜索每封电子邮件 我读到AdvancedSearch方法是搜索特定电子邮件的一种更快的方法。但我真的不知道它是怎么工作的这就是为什么我需要你们的帮助 Set olApp = New Outlook.Application Set olNameSpace = olApp.GetNamespace("

我有一个程序在Outlook的Sent Items文件夹中搜索每个电子邮件,直到它在指定的电子邮件中找到标记(URL),打开它并发送回复

但是我在“已发送邮件”文件夹中有很多电子邮件,所以要花很多时间来搜索每封电子邮件

我读到AdvancedSearch方法是搜索特定电子邮件的一种更快的方法。但我真的不知道它是怎么工作的这就是为什么我需要你们的帮助

Set olApp = New Outlook.Application
Set olNameSpace = olApp.GetNamespace("MAPI")
Set olFolder = olNameSpace.GetDefaultFolder(olFolderSentMail)

For Each olMail In olFolder.Items

    tagLink = Sheets("Data").Cells(rowCount, 6)

    If InStr(olMail.HTMLBody, tagLink) <> 0 Then

    With olMail.Reply

        .Display
        .To = sMailTo
        .CC = sMailCC
        .HTMLBody = mailBody & vbLf & .HTMLBody

        .Send

    End With

    End If

Next olMail
如何在此类程序中使用AdvancedSearch方法?

感谢你们的帮助

Set olApp = New Outlook.Application
Set olNameSpace = olApp.GetNamespace("MAPI")
Set olFolder = olNameSpace.GetDefaultFolder(olFolderSentMail)

For Each olMail In olFolder.Items

    tagLink = Sheets("Data").Cells(rowCount, 6)

    If InStr(olMail.HTMLBody, tagLink) <> 0 Then

    With olMail.Reply

        .Display
        .To = sMailTo
        .CC = sMailCC
        .HTMLBody = mailBody & vbLf & .HTMLBody

        .Send

    End With

    End If

Next olMail
Set olApp=New Outlook.Application
设置olNameSpace=olApp.GetNamespace(“MAPI”)
设置olFolder=olNameSpace.GetDefaultFolder(olFolderSentMail)
对于olFolder.Items中的每个olMail
tagLink=工作表(“数据”).单元格(行数,6)
如果InStr(olMail.HTMLBody,tagLink)为0,则
用电子邮件回复
陈列
.To=sMailTo
.CC=sMailCC
.HTMLBody=mailBody&vbLf&HTMLBody
邮寄
以
如果结束
下一封邮件
对于olFolder.Items中的每个olMail

不要迭代文件夹中的所有项目。尤其是当你的文件夹中有大量的项目时

相反,您可以考虑使用Type类的Buffor或find /FordNeXT方法。您可以在以下文章中找到对它们的详细描述:

当然,您可以考虑使用应用程序类的<代码> AdvestDebug < /代码>方法。使用此方法的主要好处是能够在后台运行搜索,并在不同/多个文件夹中搜索项目。阅读更多关于文章中所有好处的信息

最后,您可能会发现这篇文章很有帮助