【发布时间】:2016-02-12 19:25:17
【问题描述】:
我正在尝试获取以下代码来查看 Outlook 中收件箱下的所有文件夹和子文件夹以及来自电子邮件的源数据。
代码运行,但它只查看收件箱中的电子邮件和收件箱的第一个子文件夹级别。但是,它不会查看第一个子文件夹中的所有后续子文件夹级别。
这就是它的外观
收件箱 --> 子文件夹 1 --> 停止查找
我想让它看透
收件箱 --> 子文件夹 1 --> 子文件夹 2 --> 子文件夹“n”
例如,我的收件箱中有以下文件夹:
- 收件箱 --> 加拿大 --> 安大略 --> 多伦多
或
- 收件箱 --> 衣服 --> 便宜衣服 --> 沃尔玛
它只查看收件箱和第一级,因此加拿大或衣服,但不查看加拿大/衣服下的文件夹,例如安大略或廉价衣服。我想让它走得更远,看看 Toronto 和 Walmart,它们是安大略和廉价服装下的文件夹。
【问题讨论】:
-
谢谢。我试图实现这些更改,但我对
Private Sub processFolder(ByVal oParent As Outlook.MAPIFolder)的行感到困惑。如果我包含它,VBA 不会将其识别为宏。如果我把它拿出来,它会将processFolder (oFolder)称为未定义的子或函数。 -
processFolder 不是独立代码。当代码以子名称(数据作为任何内容)开头时,它会从其他代码调用,将数据传递给它。在接受的答案中也有一个错字,我在第二个示例中对此进行了描述,并在接受的答案中进行了修复。 processFolder o不带括号的文件夹。如果您仍然遇到问题,请编辑您的问题以添加您当前的代码。不要删除您的第一次尝试。
-
@niton ,我在执行您建议的修复后编辑了代码,它在 OP 中。现在,它正在显示未为行
For Each olMail In oParent.Items定义的对象