Regex 是否将单个Outlook邮件中的多封电子邮件提取到Excel?

Regex 是否将单个Outlook邮件中的多封电子邮件提取到Excel?,regex,excel,outlook,vba,Regex,Excel,Outlook,Vba,我需要一个宏在Outlook中提取Outlook邮件中的所有电子邮件地址,然后在excel中发布 下面的代码只提取它在正文中找到的第一个电子邮件地址 我期望的输出应该是: 亚当。peters@sample.com 亚当。dryburgh@sample.com 艾米。norton@sample.com 我的示例电子邮件是: 向以下收件人或组传递失败: 亚当。peters@sample.com无法找到您输入的电子邮件地址 建立请检查收件人的电子邮件地址并尝试重新发送 信息。如果问题仍然存在,请联系您

我需要一个宏在Outlook中提取Outlook邮件中的所有电子邮件地址,然后在excel中发布

下面的代码只提取它在正文中找到的第一个电子邮件地址

我期望的输出应该是:

亚当。peters@sample.com 亚当。dryburgh@sample.com 艾米。norton@sample.com

我的示例电子邮件是:

向以下收件人或组传递失败:

亚当。peters@sample.com无法找到您输入的电子邮件地址 建立请检查收件人的电子邮件地址并尝试重新发送 信息。如果问题仍然存在,请联系您的帮助台

亚当。dryburgh@sample.com无法找到您输入的电子邮件地址 建立请检查收件人的电子邮件地址并尝试重新发送 信息。如果问题仍然存在,请联系您的帮助台

艾米。norton@sample.com无法找到您输入的电子邮件地址 建立请检查收件人的电子邮件地址并尝试重新发送 信息。如果问题仍然存在,请联系您的帮助台

以下组织拒绝了您的邮件: mx2.dlapiper.iphmx.com

代码:

未经测试

替换

RegEx.Pattern = "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"
RegEx.IgnoreCase = True
RegEx.MultiLine = True


我注意到以下代码行:

Set olApp = Outlook.Application    
如果在Outlook中运行代码,则需要使用Application属性获取应用程序类的实例。或者您需要使用New操作符来创建新实例,例如:

 Set ol = New Outlook.Application

有关更多信息,请参阅


您也可以考虑使用Word对象模型来处理项目体。Inspector类的属性返回表示消息体的文档类的实例。有关更多信息,请参阅。

添加RegEx.Global=trues这是一封带有该正文的常规电子邮件吗?还是NDR报告项?它是NDR。宏应获取所有电子邮件发送失败的电子邮件地址的列表。我的解决方案是从NDR中提取电子邮件地址。你知道其他解决办法吗?
Set olApp = Outlook.Application    
 Set ol = New Outlook.Application
 Set objOL = CreateObject("Outlook.Application")