【发布时间】:2019-07-19 05:26:55
【问题描述】:
我在另一台计算机上使用 Outlook 设置了一个小宏,但现在我已经切换了计算机,我无法让它工作。当我尝试运行最后一个 Private Sub 时,它无法识别名称并拉出没有列出任何选项的宏选择框。
我不喜欢手动将“已删除邮件”文件夹中的电子邮件标记为已读,尤其是考虑到他们有惊人的远见将丢弃的草稿标记为未读。
这是以前可以工作的代码:
Dim WithEvents g_OlkFolder As Outlook.Items
Private Sub Application_Quit()
Set g_OlkFolder = Nothing
End Sub
Private Sub Application_Startup()
Set g_OlkFolder = Session.GetDefaultFolder(olFolderDeletedItems).Items
End Sub
Private Sub g_OlkFolder_ItemAdd(ByVal Item As Object)
Item.UnRead = False
Item.Save
End Sub
【问题讨论】:
-
安装 Outlook 后,每个电子邮件帐户都有一个商店和默认商店。每个商店都有自己的已删除邮件文件夹。不使用默认的已删除邮件文件夹。这对你的新电脑来说是真的吗?尝试在您的即时窗口中输入
? Session.GetDefaultFolder(olFolderDeletedItems).Parent.Name。它是否显示正确的商店名称? -
您是否希望
g_OlkFolder_ItemAdd出现在可供选择的宏列表中?带参数的宏只能被另一个宏调用,不能供用户选择。 -
还要检查您的宏安全设置,如果没问题,请重新启动 Outlook,然后将未读项目移动到已删除的文件夹。
-
@TonyDallimore 我只在 Outlook 上使用一个帐户,所以我不认为应该有多个已删除项目存储。我真的不期望或关心 g_OlkFolder_ItemAdd 是否显示为宏。我真的只是想让它运行。
-
@0m3r 我启用了宏并重新启动了几次。感谢您尝试
标签: vba outlook outlook-2016