初始化“已发送邮件”文件夹的处理程序时,Outlook VBA类型不匹配(错误13)

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

这是我在论坛上的第一个帖子,所以我希望我能根据需要进行所有操作。

[几年以来,我们在公司使用vba Outlook宏将已发送的邮件发送到文件夹。按下发送按钮指定文件夹。创建宏时,我们曾经在按下send后直接保存文件,但是只有草稿文件保存到了指定的文件夹中。在此之前,我们启动了一个处理程序,以检查何时将邮件添加到“已发送邮件”文件夹中,以便可以将该邮件保存到指定的文件夹中。从昨天开始,只有一部分同事在运行此宏时开始出现Type mismatch错误。今天,另一对同事也遇到了这个问题。我们大多数人仍然可以使用该宏而不会出现任何错误。

我通过创建一个更简单的宏将问题缩小到initialize_handler本身。因此,现在发送任何电子邮件时,我都会为“已发送邮件”文件夹中的项目初始化一个处理程序。将项目添加到“已发送邮件”文件夹后,将出现一个消息框,告诉我已添加项目。

类型不匹配错误是在“设置myOlItems = ....”上创建的。

Public WithEvents myOlItems As Outlook.Items

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Call Initialize_handler
End Sub

Public Sub Initialize_handler()
    Set myOlItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Items
End Sub


Private Sub myOlItems_ItemAdd(ByVal ObjectSent As Object)
    MsgBox "Item is added to Sent Mails"
End Sub

我希望有人对此有解决方案。我无法找出导致错误的原因?

谢谢!

vba types outlook handler mismatch
1个回答
0
投票

我建议通过在单独的代码行中声明每个属性或方法调用,从打破属性和方法调用的链开始。因此,我们将能够找出哪些属性或方法调用失败。

© www.soinside.com 2019 - 2024. All rights reserved.