如果我选择多个电子邮件,则子删除除最后一个之外的所有电子邮件,然后给出错误。
如果我选择一个项目,它会直接转错。
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项目无法删除(翻译自荷兰语)
答案 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不喜欢的。