【问题标题】:Outlook VBA: How to send emails from Drafts folder?Outlook VBA:如何从草稿文件夹发送电子邮件?
【发布时间】:2016-03-11 16:03:40
【问题描述】:

我在 Outlook 的草稿文件夹中有一百封邮件。我想把它们都寄出去。

我在下面有一个代码,它从草稿文件夹发送邮件,除了一封邮件(这是最后一封邮件)。程序读取的最后一封邮件收到一条错误消息:

“运行时错误‘440’: 数组索引超出范围。”

你们觉得呢?非常感谢。

For i = 1 To myFolder.Items.Count

    myFolder.Items(i).Send

Next

【问题讨论】:

    标签: vba email outlook


    【解决方案1】:

    如果在循环中使用递增计数器修改文件夹,将会遇到问题。

    一种可能的解决方案是将集合向后循环,即:

    For i = myFolder.Items.Count To 1 Step -1
        myFolder.Items(i).Send
    Next
    

    正如 SkyMaster 所说,该数组是 1 索引的。

    【讨论】:

    • 太棒了。谢谢@DanL。感谢您的帮助。
    【解决方案2】:

    Items 集合的索引从 1 开始,不保证 Items 集合对象中的项目按任何特定顺序排列。
    https://msdn.microsoft.com/en-us/library/office/ff863652.aspx

    编辑: 另请参阅压缩 Outlook 数据文件: https://support.office.com/en-nz/article/Reduce-the-size-of-Outlook-Data-Files-pst-and-ost-e4c6a4f1-d39c-47dc-a4fa-abe96dc8c7ef

    【讨论】:

    • 哦,好的。谢谢,但仍然出现同样的错误。
    • 一个可能的解决方案是像 DanL 提到的那样将集合向后循环。
    • 不错。谢谢@SkyMaster。
    【解决方案3】:

    每发送一份草稿,文件夹中就会少一封电子邮件。下一封电子邮件向上移动成为集合中的第一封电子邮件。因此,当您循环播放时,您可以继续发送消息 folder.Items(1)

    我已经为工作中的一些用户设置了这个代码(他们有多个邮箱链接到他们的帐户):

        Sub SendAllYourMailboxDrafts()
            SendAllDrafts "your-mailbox-name"
        End Sub
    
        Sub SendAllDrafts(mailbox As String)
    
            Dim folder As MAPIFolder
            Dim msg As Outlook.MailItem
            Dim count As Integer
    
            Set folder = Outlook.GetNamespace("MAPI").Folders(mailbox)
            Set folder = folder.Folders("Drafts")
    
            If MsgBox("Are you sure you want to send the " & folder.Items.count & " items in your " & mailbox & " Drafts folder?", vbQuestion + vbYesNo) <> vbYes Then Exit Sub
    
            count = 0
            Do While folder.Items.count > 0
                Set msg = folder.Items(1)
                msg.Send
                count = count + 1
            Loop
    
            MsgBox count & " message(s) sent", vbInformation + vbOKOnly
        End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 2019-05-20
      • 2021-08-08
      相关资源
      最近更新 更多