我在 Outlook 中有以下代码,用于在收到符合特定条件的电子邮件时保存附件。该代码可以工作,但是每次启动 Outlook 时我都会收到运行时错误“424”:需要对象。调试器将我带到这一行:Set objItems = objInbox.Items。但我不确定问题是什么,或者它是否是一个问题,因为代码似乎可以正常工作。
此外,VBA 仅在我打开笔记本电脑并运行 Outlook 时才工作。如何重写此代码,以便无论我的计算机是否打开并且 Outlook 是否正在运行,它都可以正常工作?这些是发送到群组邮箱的电子邮件,而不仅仅是我的个人电子邮件。
Public WithEvents objItems As Outlook.Items
Private Sub Application_Startup()
Set objItems = objInbox.Items
End Sub
Private Sub objItems_ItemAdd(ByVal Item As Object)
Dim objTaskRequest As Outlook.TaskRequestItem
End Sub
Sub BBDLPRICEMailMessageRule(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim dateFormat As String
dateFormat = Format(Now, "yyyy-mm-dd_")
sSaveFolder = "N:\Applications\APX\Import\BB_DL_Prices"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & "\" & oAttachment.DisplayName
Next
End Sub
需要在代码中初始化
objInbox
对象:
Dim myNamespace As Outlook.NameSpace
Private Sub Application_Startup()
Set myNamespace = Application.GetNamespace("MAPI")
Set objInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set objItems = objInbox.Items
End Sub