【问题标题】:VBA SHORT EMAILS BY SENDER发件人的 VBA 短电子邮件
【发布时间】:2021-05-31 21:52:49
【问题描述】:

我刚开始使用 VBA,我正在尝试启动我认为 python 的规则,所以我尝试使用通常的规则来发送某人的短邮件并将该电子邮件从收件箱移动到另一个文件夹(在本例中名为 zzz )。由于我在 Outlook 上有三个不同的帐户,因此我想为代码中名为 myemail@company.com 的帐户执行此操作。

Sub ResolveName()
 Dim ns As NameSpace
 Set ns = Application.Session
 Dim acc As Account
 Dim f As Folder
 Dim myDestFolder As Folder
 
 Dim myItem As Object

 For Each acc In ns.Accounts
    
    If acc = "myemail@company.com" Then
    Set f = acc.DeliveryStore.GetDefaultFolder(olFolderInbox)
         
    Set myDestFolder = f.Folders("zzz")
    Set myItem = f.Items.Find("[SenderName] = 'SendersName Surname'")
    While TypeName(myItem) <> "Nothing"
        myItem.Move myDestFolder
        Set myItem = myItems.FindNext
    Wend

 End If
 Next
End Sub

当我运行它时,我得到以下错误

在执行时发生了以下错误“-2147221233 (8004010f)” 找不到对象。

我不知道我做错了什么 提前谢谢你。

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    哪一行代码出错了?有没有尝试在调试器下逐行运行代码?

    反正下面这行代码不正确:

    If acc = "myemail@company.com" Then
    

    帐户对象不是要比较的字符串。您需要使用 Account.SmtpAddress 属性,该属性返回一个字符串,表示帐户的简单邮件传输协议 (SMTP) 地址。

    但是,我找到了一个 similar issue,它解释了可能的原因 - 错误号可以告诉我们 PST 文件(存储)的问题。

    【讨论】:

    • 我在 Set f 之后的代码中添加了 MsgBox acc.UserName 和 MsgBox f.Items.Count 以检查它是否在那里工作并且该部分似乎工作正常。我看不到代码失败的地方。我提到的错误是我唯一看到的。如何运行调试器?对不起,我通常只使用 python,我不太擅长 VBA
    • 问题可能与特定商店有关。尝试创建一个新的配置文件,看看问题是否仍然存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多