无法删除上一封电子邮件

时间:2015-12-07 14:08:39

标签: vba outlook outlook-vba

如果我选择多个电子邮件,则子删除除最后一个之外的所有电子邮件,然后给出错误。

如果我选择一个项目,它会直接转错。

Private Sub CommandButton8_Click()
For i = Application.ActiveExplorer.Selection.Count To 1 Step -1
' https://msdn.microsoft.com/en-us/library/office/ff863343.aspx
    Dim email As Outlook.MailItem
    Set email = Application.ActiveExplorer.Selection.Item(i)
    email.Delete
Next
End Sub

Error -2147352567 (80020009) Outlook项目无法删除(翻译自荷兰语)

2 个答案:

答案 0 :(得分:0)

Aldo有一个有效点

转动预览窗格使其正常工作

    Private Sub CommandButton8_Click()
On Error Resume Next

' turn off preview plane to prevent error
Application.ActiveExplorer.ShowPane olPreview, False

For i = Application.ActiveExplorer.Selection.Count To 1 Step -1

    If i = 1 Then

    End If

   Application.ActiveExplorer.Selection.Item(i).Delete

Next

Application.ActiveExplorer.ShowPane olPreview, True

End Sub

答案 1 :(得分:-1)

没有测试任何东西(你没有告诉我们你使用的是什么版本的Outlook),我猜你可以尝试删除邮件而不是逐个明确地分配它们:

For i = Application.ActiveExplorer.Selection.Count To 1 Step -1
    Application.ActiveExplorer.Selection.Item(i).Delete
Next

这具有更快执行的额外好处。在您的代码中,尝试从选择中删除最后一个剩余项目会导致对变量email的引用,这可能是VBA不喜欢的。