【发布时间】:2022-05-16 23:11:50
【问题描述】:
我想按顺序自动执行以下操作:
- 扫描电子邮件文件夹以查找特定内容的邮件(主题或正文,两者都可以);
- 如果找到,我想在电子邮件正文中搜索每个电子邮件唯一的特定字符串;
- 复制唯一且特定的字符串;
- 将其粘贴到一个单元格中,但哪个单元格取决于行中的信息。
Outlook 和 Excel 都属于 Microsoft 365。
标签: excel vba outlook uipath office-automation
我想按顺序自动执行以下操作:
Outlook 和 Excel 都属于 Microsoft 365。
标签: excel vba outlook uipath office-automation
您可以自动化这两个应用程序来完成工作。
首先,要查找与您的条件相对应的邮件项目,您可以使用 Items 类的 Find/FindNext 或 Restrict 方法。您可以使用逻辑 AND 运算符简单地将所有条件组合成一个查询字符串。在以下文章中阅读有关这些方法的更多信息:
其次,要处理来自消息正文的所需信息,您可以使用不同的属性。 Outlook 对象模型支持自定义邮件正文的三种主要方式:
Body 属性返回或设置表示 Outlook 项目的明文正文的字符串。
MailItem 类的 HTMLBody 属性返回或设置表示指定项的 HTML 正文的字符串。设置HTMLBody 属性将始终立即更新 Body 属性。例如:
Sub CreateHTMLMail()
'Creates a new e-mail item and modifies its properties.
Dim objMail As Outlook.MailItem
'Create e-mail item
Set objMail = Application.CreateItem(olMailItem)
With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML><BODY>Enter the message <a href="http://google.com">text</a> here. </BODY></HTML>"
.Display
End With
End Sub
Word 对象模型可用于处理消息体。有关更多信息,请参阅Chapter 17: Working with Item Bodies。
从 Word 对象模型中,您可以将所需信息直接复制并粘贴到 Excel。
【讨论】:
您也可以在 UiPath 中执行此操作。
使用 GetExchangeMailMessages 活动,您可以过滤主题等以仅阅读您感兴趣的邮件。使用此活动,您无需安装 Outlook 客户端,您可以在服务器属性中使用此 URL 进行连接 - "https:/ /outlook.office365.com/EWS/Exchange.asmx”。
从返回的消息中,我使用 Regex.Match 函数从 Body 中解析出各种细节。这工作得很好。
您可以在变量中使用解析和匹配的 Body 数据。
您可以使用解析和匹配的 Body 变量写入数据表/单元格和 Excel 文件等。
希望这可以帮助。
【讨论】: