运行时错误“424”:需要对象 - Outlook VBA

问题描述 投票:0回答:1

我在 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
vba outlook runtime-error
1个回答
0
投票

需要在代码中初始化

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
© www.soinside.com 2019 - 2024. All rights reserved.