当前位置 : 主页 > 手机开发 > 无线 >

为什么“撤消”无法与标记为已读并移动邮件项的Outlook宏一起使用?

来源:互联网 收集:自由互联 发布时间:2021-06-10
我有一个标记为读取的 Outlook macro并将对话中的所有消息移动到另一个文件夹中.我将宏分配给一个名为“存档”的按钮.但是,我无法“撤消”这一行动.如果我 删除邮件 存档邮件 撤消
我有一个标记为读取的 Outlook macro并将对话中的所有消息移动到另一个文件夹中.我将宏分配给一个名为“存档”的按钮.但是,我无法“撤消”这一行动.如果我

>删除邮件
>存档邮件
>撤消

我最终取消删除邮件.我以为我会取消移动信息.如果我通过将消息拖放到另一个文件夹来移动消息,则撤消按照我期望的方式工作.这是宏,有谁知道为什么这不支持撤销?

Sub ArchiveConversation()
    Set ArchiveFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("Archive")
    Set Conversations = ActiveExplorer.Selection.GetSelection(Outlook.OlSelectionContents.olConversationHeaders)
    For Each Header In Conversations
        Set Items = Header.GetItems()
        For i = 1 To Items.Count
            Items(i).UnRead = False
            Items(i).Move ArchiveFolder
        Next i
    Next Header
End Sub

或者我必须在撤消支持中编码?

不幸的是,Outlook的撤消功能仅对用户的操作起作用,而不是对程序化操作起作用. Excel允许通过 Application.OnUndo钩子,但这不是在Outlook中实现.

也许一个合理的选择是创建一个’撤消上一个存档’按钮;只要您将最后一个存档操作存储在可以访问它的位置,当用户单击“撤消”按钮时,您的宏会手动移回消息并将其标记为未读(如果它原来是这样).

网友评论