【问题标题】:vba move email to folder if subject is like?如果主题像,vba 将电子邮件移动到文件夹?
【发布时间】:2014-10-08 14:53:16
【问题描述】:

我正在使用以下代码将电子邮件从我的收件箱移至另一个名为 Supplier 的文件夹。 如果主题是“介绍”,它目前有效,但如果主题是“我的介绍”,则无效

我想要做的是添加一行,说明主题或正文是 LIKE 'introduction' 还是 Like 'introduce' 或 Like 'Supply' 等等...

此外,我的 Outlook 中有多个帐户,目前此代码仅适用于我的默认帐户,但我希望它适用于我的名为“Purchasing@Hewden.co.uk”的帐户,有没有办法可以改变这个?我的“供应商”文件夹位于我的 purchase@hewden.co.uk 帐户的收件箱中,我想将电子邮件从该收件箱移至供应商文件夹。

Sub MoveItems()
 Dim myNameSpace As Outlook.NameSpace
 Dim myInbox As Outlook.Folder
 Dim myDestFolder As Outlook.Folder
 Dim myItems As Outlook.Items
 Dim myItem As Object


 Set myNameSpace = Application.GetNamespace("MAPI")
 Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
 Set myItems = myInbox.Items
 Set myDestFolder = myInbox.Folders("Supplier")
 Set myItem = myItems.Find("[Subject] = 'Introduction'")
 While TypeName(myItem) <> "Nothing"
 myItem.Move myDestFolder
 Set myItem = myItems.FindNext
 Wend
End Sub

【问题讨论】:

  • 您根本不需要 VBA。创建一个过滤器。
  • 我尝试过使用规则,但这并没有达到我想要的效果,如果可以的话,我更喜欢使用 vba
  • vba 不能提供什么规则?
  • 规则不会总是读取一个主题,除非它拼写准确,vba 允许你做一个 if like 主题,例如如果主题包含“这是一个介绍”,那么 vba 可以在哪里选择这个通常不会
  • 主题中的关键字是“介绍”

标签: vba email outlook


【解决方案1】:

我知道问题要求提供代码,但是通过使用规则可以更轻松地完成此操作。如果不想要这个答案,我会删除它。

无论如何,您应该阅读thisthis 以了解规则,它们真的很棒。 您将要创建一个新规则并根据主题行中的关键字对其进行过滤,您只需编写“介绍”,Outlook 就会知道查找该词。

您还必须指定电子邮件的去向,就我而言,您还需要指定当新邮件到达时显示何种通知(如果有)。

所有这些都应该在规则下可用 -> 创建新规则。

【讨论】: