我在这里发现了一个类似于我的问题的问题;
How can I move Mails Items from Outlook Inbox with specific subject to specific folder/sub folder?
第一个模块- 此代码的第一部分-我已将所有电子邮件数据成功导出到电子表格。
第二个模块- 我想指示Excel VBA根据我在电子表格中键入的数据集将主文件夹中的电子邮件移动到子文件夹(它不会基于电子邮件本身的过滤器/标准,而只是基于其唯一的主题标题)。 / p>
在(c)列中,是电子邮件的主题(所有主题标题都是特定的/唯一的),在(h)列中,我详细说明了我想在其中使用的子文件夹的名称也感动不幸的是,我在执行创建的代码时遇到错误。
我是Excel VBA的初学者,没有最深刻的了解。我对基于不同来源的代码有所了解,如果它的不正确之处告诉我,将不胜感激
谢谢。
library()
答案 0 :(得分:1)
在代码中,您将遍历文件夹中的所有项目:
'Loop through the Items in the folder backwards
'Setting Mail to counting backwards
For lngCount = items.Count To 1 Step -1
'setting object as Email item
Set item = items.item(lngCount)
这确实不是一个好主意。尤其是如果您稍后使用Find
方法。
如果您需要查找与您的条件相对应的项目,建议您使用Items类的Find
/ FindNext
或Restrict
方法。在以下文章中了解有关这些方法的更多信息:
此外,您可能会发现Application
类的AdvancedSearch方法很有帮助。在Outlook中使用AdvancedSearch
方法的主要好处是:
AdvancedSearch
方法会在后台自动运行该线程。Restrict
和Find
/ FindNext
方法应用于特定的Items集合(请参阅Outlook中Items
类的Folder
属性)。IsInstantSearchEnabled
类的Store
属性)。Stop
类的Search
方法停止搜索过程。答案 1 :(得分:0)
没有必要尝试查找该物品。
已经用Set item = items.item(lngCount)
标识了。
您可以检查主题以查看它是否是您想要的项目。
'Find Email using Subject found on Column C
'Set item = items.Find(FilterText)
'If the object is an Email
If item.Class = olMail Then
If item.Subject = FilterText Then
'Find item under the main Folder subfolders
Set subfolder = Folder.Folders(FolderMove)
'Mark Item as Read
item.UnRead = False
'Move Item to folder type in Outlook
item.Move subfolder
End If
End If