Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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脚本将类别添加到Outlook电子邮件?_Excel_Vba_Email_Outlook_Workflow - Fatal编程技术网

Excel 如果电子邮件中的字符串与电子表格中的字符串匹配,是否使用VBA脚本将类别添加到Outlook电子邮件?

Excel 如果电子邮件中的字符串与电子表格中的字符串匹配,是否使用VBA脚本将类别添加到Outlook电子邮件?,excel,vba,email,outlook,workflow,Excel,Vba,Email,Outlook,Workflow,我所在部门的共享Outlook邮箱(0Office 365)每天收到大量关于不同项目的电子邮件。问题在于,根据电子邮件发件人的不同,项目会以不同的方式被引用。这些项目是大学研究项目,根据其所处的阶段,至少有5个不同的名称或字母数字 我的目标是让VBA在共享收件箱和已发送邮件中进行第一次循环,并在每封电子邮件中添加一个类别标记,以便我的团队能够找到并跟踪所有不同的线程。其次,VBA应该为新的入站和已发送邮件添加一个类别 这里的关键是VBA在“收件人:”、“发件人:”、“主题”和“消息”字段中搜索字

我所在部门的共享Outlook邮箱(0Office 365)每天收到大量关于不同项目的电子邮件。问题在于,根据电子邮件发件人的不同,项目会以不同的方式被引用。这些项目是大学研究项目,根据其所处的阶段,至少有5个不同的名称或字母数字

我的目标是让VBA在共享收件箱和已发送邮件中进行第一次循环,并在每封电子邮件中添加一个类别标记,以便我的团队能够找到并跟踪所有不同的线程。其次,VBA应该为新的入站和已发送邮件添加一个类别

这里的关键是VBA在“收件人:”、“发件人:”、“主题”和“消息”字段中搜索字符串值,这些字符串值将标识电子邮件引用的项目。VBA应使用主项目电子表格中的数据作为其搜索参数。母版图纸可以存储在Sharepoint文档库或OneDrive文件夹中

例如,如果收到一封电子邮件,其中在主题行中包含补助金编号,但没有提及负责该项目的教员。VBA将在Excel工作表中找到补助金编号,并分配一个带有教员姓名的标记(也是主项目工作表中的一个字段)

摘要 使用主Excel电子表格(Principle Investigator、Project Number、Award Number、Grant Number等)搜索电子邮件(发件人、收件人、抄送人、主题、邮件)中的搜索参数值,然后为0365共享邮箱的收件箱和sent文件夹中的每封电子邮件分配一个类别(该类别可能已在Outlook中创建,也可能尚未在Outlook中创建)

通常被问及的其他细节: 所有用户都在Windows 10上使用Outlook 365帐户(桌面应用程序)。主文件是从Oracle OBIEE数据库导出的.xlsx文件。我无法直接连接到Oracle数据


提前感谢您来到这个很棒的社区。

您似乎对使用
应用程序
类的方法感兴趣。在Outlook中使用
AdvancedSearch
方法的主要好处是:

  • 搜索在另一个线程中执行。您不需要手动运行另一个线程,因为
    AdvancedSearch
    方法会在后台自动运行它
  • 可以在任何位置搜索任何项目类型:邮件、约会、日历、备注等,即超出特定文件夹的范围。Restrict和
    Find
    /
    FindNext
    方法可应用于特定的
    项目
    集合(请参阅Outlook中
    文件夹
    类的
    项目
    属性)
  • 完全支持DASL查询(自定义属性也可用于搜索)。您可以在MSDN中的文章中阅读更多有关这方面的内容。为了提高搜索性能,如果为存储启用了即时搜索,则可以使用即时搜索关键字(请参见
    存储
    类的
    IsInstantSearchEnabled
    属性)
  • 您可以使用search类的
    stop
    方法随时停止搜索过程
在文章中阅读更多关于此方法的信息

您还可以找到Items类的
find
/
FindNext
Restrict
方法。以下文章对它们进行了深入的描述:

使用属性返回或设置表示分配给Outlook项目的类别的字符串。类别是已分配给Outlook项目的类别名称的分隔字符串。此属性使用Windows注册表中
HKEY\U CURRENT\U USER\Control Panel\International
下的值名称
sList
中指定的字符作为多个类别的分隔符。要将类别名称字符串转换为类别名称数组,请使用Microsoft Visual Basic函数
Split

对于Microsoft Outlook处理的每个接收到的项目,该事件都会触发一次。项目可以是几种不同的项目类型之一,例如,
邮件项目
会议项目
,或
共享项目
NewMailEx
事件在新邮件到达收件箱时以及客户端规则处理发生之前触发。您可以使用
entrydcollection
数组中返回的条目ID调用该方法并处理该项。请谨慎使用此方法,以尽量减少对Outlook性能的影响