【发布时间】:2020-02-01 05:22:06
【问题描述】:
我在 Outlook VBA 中有一个宏,旨在设置所选电子邮件的类别,并在用户单击“功能区”上的按钮时向发件人发送回复电子邮件。
以下代码将正确设置任何较新电子邮件的类别,但会抛出“运行时错误'440':无法保存此项目。”当在已经存在一段时间的电子邮件上运行时。我不知道是什么原因造成的,因为它运行了一段时间然后就不再工作了。
我尝试重新启动 Outlook、登录和注销以及重新启动计算机,但这些似乎都没有触发行为变化,所以我认为这与电子邮件的放置时间有关。这相当令人困惑,因为我不明白为什么在文件夹中停留的时间会影响保存能力,但不会影响访问 MailItem 属性的能力。
代码的简化版本(没有电子邮件发送部分,可以正常工作)如下:
Public Sub UpdateCategory
Dim objItem as Object
Set objItem = GetCurrentItem()
'Verify that selected item is an email and an engineering request
If TypeName(objItem) = "MailItem" And InStr(LCase(objItem.Subject), "engineering request") > 0 Then
objItem.Categories = "Test"
objItem.Save
End If
Set objItem = Nothing
End Sub
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
Set objApp = Nothing
End Function
任何想法或建议将不胜感激!
【问题讨论】: