跳到主要内容

如何计算Outlook中某些文件夹下的子文件夹数量?

假设您已经在根文件夹下创建了一些文件夹。 现在,您想知道根文件夹下有多少个子文件夹,怎么办? 只需展开根文件夹并手动逐个计数所有子文件夹? 本文将为您介绍一个简单的方法来实现它。

用VBA代码计算子文件夹的数量


用VBA代码计算子文件夹的数量

以下VBA代码可以帮助您计算Outlook中某个根文件夹下的子文件夹数。 请执行以下操作。

1。 按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块。 然后将下面的VBA代码复制并粘贴到“代码”窗口中。

VBA代码:计算Outlook中某些文件夹下的子文件夹数

Sub CountSubFldsUnderRootFolder()
Dim xRootFolder As Folder
Dim xFolderCount As Long
Dim xFolder As Object
On Error Resume Next
'Set xRootFolder = Outlook.Application.ActiveExplorer.CurrentFolder
Set xRootFolder = Outlook.Application.Session.PickFolder
If TypeName(xRootFolder) = "Nothing" Then Exit Sub
If xRootFolder.Folders.Count < 1 Then
    MsgBox "No subfolders under " & Chr(34) & xRootFolder.Name & Chr(34) & ".", vbInformation, "Kutools for Outlook"
    Exit Sub
End If
For Each xFolder In xRootFolder.Folders
    If xFolder.Name <> "Conversation Action Settings" And xFolder.Name <> "Quick Step Settings" Then
        xFolderCount = xFolderCount + 1
        Call ProcessFolders(xFolder, xFolderCount)
    End If
Next
MsgBox xFolderCount & " subfolders under " & Chr(34) & xRootFolder.Name & Chr(34) & ".", vbInformation, "Kutools for Outlook"
End Sub

Sub ProcessFolders(SubFolder As MAPIFolder, Num As Long)
Dim xSubFolder As MAPIFolder
On Error Resume Next
Num = Num + SubFolder.Folders.Count
For Each xSubFolder In SubFolder.Folders
    Call ProcessFolders(xSubFolder, Num)
Next
End Sub

3。 按 F5 键来运行代码。

4.在开幕 选择“文件夹” 对话框中,选择一个要计算其子文件夹的文件夹,然后单击 OK 按钮。 看截图:

5.然后 Kutools for Outlook 弹出对话框,告诉您指定文件夹中存在多少个子文件夹。 看截图:


相关文章:


最佳办公生产力工具

Kutools for Outlook - 超过 100 种强大功能可增强您的 Outlook

🤖 人工智能邮件助手: 具有人工智能魔力的即时专业电子邮件——一键天才回复、完美语气、多语言掌握。轻松改变电子邮件! ...

📧 电子邮件自动化: 外出(适用于 POP 和 IMAP)  /  安排发送电子邮件  /  发送电子邮件时按规则自动抄送/密件抄送  /  自动转发(高级规则)   /  自动添加问候语   /  自动将多收件人电子邮件拆分为单独的消息 ...

📨 电子邮件管理: 轻松回忆电子邮件  /  按主题和其他人阻止诈骗电子邮件  /  删除重复的电子邮件  /  高级搜索  /  合并文件夹 ...

📁 附件专业版批量保存  /  批量分离  /  批量压缩  /  自动保存   /  自动分离  /  自动压缩 ...

🌟 界面魔法: 😊更多又漂亮又酷的表情符号   /  使用选项卡式视图提高 Outlook 工作效率  /  最小化 Outlook 而不是关闭 ...

👍 一键奇迹: 使用传入附件回复全部  /   反网络钓鱼电子邮件  /  🕘显示发件人的时区 ...

👩🏼‍🤝‍👩🏻 通讯录和日历: 从选定的电子邮件中批量添加联系人  /  将联系人组拆分为各个组  /  删除生日提醒 ...

超过 100特点 等待您的探索! 单击此处了解更多。

了解更多       免费下载      购买
 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Ich weiß gar nicht, ob ich hier auch Fragen stellen kann zu gefundenen Makros?Also mache ich es einfach mal, ok?
Das Makro zum Ermitteln der Anzahl von Unterordnern habe ich für meinen Zweck, nämlich in Ordnereigenschaften einzustellen, dass alle Elemente im Ordner angezeigt werden sollen im Verzeichnisbaum links in Outlook habe ich jetzt mal so für mich verändert.
Sub PrivateOrdnerAlleMailsAnzeigen()
Dim xRootFolder As Folder
Dim xFolderCount As Long
Dim xFolder As Object
On Error Resume Next

Neu:
Set xRootFolder = Outlook.Application.Session.PickFolder
If TypeName(xRootFolder) = "Nothing" Then Exit Sub
If xRootFolder.Folders.Count < 1 Then
MsgBox "No subfolders under " & Chr(34) & xRootFolder.Name & Chr(34) & ".", vbInformation, "Kutools for Outlook"
Exit Sub
End If
xRootFolder.ShowItemCount = olShowTotalItemCount
For Each xFolder In xRootFolder.Folders
xFolder.ShowItemCount = olShowTotalItemCount
xFolderCount = xFolderCount + 1
Next
MsgBox xFolderCount & " Ordner konfiguriert.", vbInformation, "Anzeigeart Elemente im Ordner"
xFolderCount = 1
GoTo Neu
End Sub


Das funktioniert auch gut aber es fehlt noch etwas, das ich nicht wirklich eingebaut bekomme.
Dabei geht es darum, dass einige Ordner unter dem Ordner, der ausgewählt wird, noch Unterordner haben, die im Ablauf aber nicht mit bearbeitet werden.

Deshalb der Weg jetzt über Goto Neu und dann Neuauswahl der Unterordner und zuletzt mit manuellem Abbrechen beenden.

Wenn mal bitte jemand drüber schauen und eventuell dafür eine automatische Lösung hätte, wäre ich Euch dankbar.

Gruß Wolfgang
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations