VBA Outlook:快速找到子文件夹

山姆

我的Outlook公用文件夹中具有以下结构。

-Public Folders
--1001_RandomProject
--1002_AnotherProject
--1003_Yetanotherproject
...

依此类推,基本上有数千个(!)子文件夹,每个子文件夹对应一个项目,并以项目编号为前缀。

现在,我正在尝试创建一个宏,该宏将允许用户选择许多邮件项目,通过输入框输入项目编号,然后将这些邮件项目自动移动到与项目编号相对应的子文件夹中。

所有这些工作正常,但是在当前实现中,我遍历“公用文件夹”的所有子文件夹,并将输入的项目编号与文件夹名称的前4个字符进行比较,以查看它们是否匹配,然后移动邮件项目到文件夹。

您可以想象成千上万个子文件夹,这往往很慢。所以我的问题是:是否有另一种方法可以选择正确的文件夹而不遍历所有文件夹(使用诸如“为我找到一个以1001 *开头的文件夹”之类的掩码)。

“查找文件夹”代码的简化部分

Sub verplaatsen()

Dim Boodschap, Titel, Standaard
Dim ProjectNumber As String
Dim NrOfFolders as Integer
Dim objOutlook As Outlook.Application
Dim objNamespace As Outlook.NameSpace
Dim FolderName as String


Boodschap = "Enter project number"
Titel = "Move mail"
Standaard = "0000"
ProjectNumber = InputBox(Boodschap, Titel, Standaard)

Set objOutlook = Application
Set objNamespace = objOutlook.GetNamespace("MAPI")

NrOfFolders = objNamespace.Folders(3).Folders(12).Folders.Count

I = 2

Do
    FolderName = objNamespace.Folders(3).Folders(12).Folders(I).Name
    If Left(FolderName, 4) = ProjectNumber Then
    Else
        I = I + 1
    End If
Loop Until I = NrOfFolders Or Left(FolderName, 4) = ProjectNumber

MoveMail (I)

End Sub
埃里克·莱戈特(Eric Legault)

遍历Folder.Folders集合是按名称查找任何给定文件夹的唯一方法。唯一的选择是维护文件夹名称和Folder.EntryID映射的索引,以便可以使用NameSpace.GetFolderFromID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Outlook VBA在子文件夹中选择消息

Outlook VBA监视多个文件夹

VBA在没有FileSystemObject的子文件夹中列出所有文件(快速方式)

使用vba搜索和移动多个Outlook文件夹

VBA 循环遍历子文件夹以打开多个文件

从文件夹和子文件夹中获取文件列表 Excel VBA

替换子文件夹VBA中文档中的文本

遍历父目录中的子文件夹-VBA

遍历所有文件夹及其所有子文件夹VBA

在Excel VBA中创建文件夹和子文件夹

抓住文件夹中所有文件的VBA代码未找到文件

如何使用 VBA 将本地 .msg 文件导入 Outlook 文件夹?

无法将选定文件夹中的文件附加到 vba 中的 Outlook 电子邮件

Excel vba:在Outlook电子邮件中的所有子文件夹中循环查找具有特定主题的电子邮件

在文件夹及其子文件夹内的所有文件中搜索字符串的vba

如何使用vba遍历所有子文件夹及其子文件夹等等,以检查文件夹是否存在?

Excel VBA创建一个文件夹,子文件夹以及其他子文件夹

查找包含文件的文件夹 (VBA)

VBA 循环遍历文件夹和子文件夹以查找特定工作表,然后复制并粘贴某些数据

使用 VBA 在 Excel 中查看 2 个 Outlook 根文件夹

使用 VBA 在 Excel 中查看 2 个 Outlook 根文件夹

Outlook VBA如何通过文件夹列表查找时提高速度

Excel Outlook VBA将未读的电子邮件保存到网络文件夹

将过滤器应用于 Outlook 文件夹 VBA

Outlook-VBA打开所选任务列表项的包含文件夹

从路径的一部分是可变的 VBA 的子文件夹中复制文件

通过VBA获取带有文件名的子文件夹名称

从不同的子文件夹访问VBA导入特定的Excel文件

用VBA打开文件夹