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


1

在Outlook 2013中,我使用“任务列表”侧栏:

  • 从“ 邮件”屏幕中,选择“ 查看”功能区选项卡。
  • 在“ 布局”功能区组中,单击“ 待办事项栏”下拉列表,然后选择“ 任务”

我“标记”的邮件项目在此列表中可见。

如果有人可以提供VBA代码来打开所选任务项的包含文件夹,我将不胜感激。

我已经尝试了以下代码(源代码),但遗憾的是它有一个错误。

Public Sub GetItemsFolderPath()
    Dim obj As Object
    Dim F As Outlook.MAPIFolder
    Dim Msg$
    Set obj = Application.ActiveWindow
    If TypeOf obj Is Outlook.Inspector Then
        Set obj = obj.CurrentItem
    Else
        Set obj = obj.Selection(1)
    End If
    Set F = obj.Parent ' <---------- DEBUG INDICATES THE ERROR IS HERE
    Msg = "The path is: " & F.FolderPath & vbCrLf
    Msg = Msg & "Switch to the folder?"
    If MsgBox(Msg, vbYesNo) = vbYes Then
        Set Application.ActiveExplorer.CurrentFolder = F
    End If
End Sub

在此输入图像描述

编辑

当您尝试运行宏时,只在查看与标记项目所在位置不同的顶级文件夹时才会出现此错误。

  • 例如,如果您当前正在Exchange帐户中的某个位置进行浏览,并且标记的邮件项恰好位于Exchange帐户中的某个子文件夹中,则宏将正常工作。
  • 同样,如果您正在探索PST数据文件中的某个位置,并且标记的邮件项恰好位于该PST数据文件中的某个子文件夹中,则该宏将正常工作。
  • 但是,如果您当前正在探索一个PST数据文件,并且您标记的项目不在该PST内,而是在其他地方,例如不同的PST或您的Exchange帐户,则该宏将出现错误。

你是如何运行这个宏的?
2015年

转到文件 > 选项 > 自定义功能区。选择适合添加按钮的位置的选项卡。对我来说,在右上角的下拉列表中,我选择工具选项卡,然后选择并展开任务列表。单击“ 新建组”并添加一个新组(我将新组命名为“文件夹”)。选择新组。然后从左下拉列表中选择。子例程将可见(必须使用“Public Sub”声明)。从列表中选择子例程,然后单击添加>>。关闭选项后,单击任务时,您将在功能区中看到按钮。

适用于Exchange帐户。您使用什么类型的Outlook帐户(todo项目所在的位置)?
2015年

哇它确实在我的Exchange收件箱上工作(我甚至没想过要测试它)。我标记的所有邮件通常都在PST文件中。看起来这个问题只适用于PST文件中的任何标记项。
Lakey 2015年

对于使用PST文件的POP3帐户,它实际上适用于我。您的PST文件是属于POP3帐户还是仅作为独立的PST文件连接?
2015年

Answers:


1

这是MAPI_E_INVALID_ENTRYID错误。它可能表示您的PST文件已损坏。尝试运行scanpst.exe实用程序来修复它,然后尝试再次运行脚本。

此外,您可能想尝试为另一个PST文件中的项目运行脚本。

编辑:有时会发生Outlook 配置文件损坏并以奇怪的方式运行。您可以尝试创建新的Outlook配置文件。


我刚刚创建了一个全新的PST数据文件。我在其中创建了一个子文件夹,然后将2封邮件从我的Exchange收件箱移动到子文件夹。我标记了消息,以便它们显示在任务列表中。在这些消息上运行宏时,会发生相同的错误。到目前为止,我的所有尝试都已在我的工作计算机上完成。我今晚会在家里再试一次。
Lakey 2015年

更新。多一点实验,我发现错误只发生在您当前正在探索不同的 PST时,而不是在运行宏时标记的邮件项目所在的PST。有关详细信息,请参阅我的问题的编辑。
Lakey 2015年

仍在这里工作。好的,你的Outlook 2013(32/64)的位数是多少?此外,您有什么版本(Office 365点击运行或独立Office安装)?
2015年

还有一个问题:您是否安装了Office 2013 SP1以及Microsoft Update的最新更新?
2015年

还更新了答案,并建议创建新的Outlook配置文件。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.