Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Outlook宏,发送两个回复,而不是一个回复_Vba_Outlook - Fatal编程技术网

Vba Outlook宏,发送两个回复,而不是一个回复

Vba Outlook宏,发送两个回复,而不是一个回复,vba,outlook,Vba,Outlook,我为Outlook创建了此宏,以便在成功发送回复后删除电子邮件 测试表明我发送了两个回复,而不是一个 Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim oExplorer As Outlook.Explorer Dim oMail As Outlook.MailItem Dim oOldMail As Outlook.MailItem Set oExplorer = App

我为Outlook创建了此宏,以便在成功发送回复后删除电子邮件

测试表明我发送了两个回复,而不是一个

Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim oExplorer As Outlook.Explorer
    Dim oMail As Outlook.MailItem
    Dim oOldMail As Outlook.MailItem
    Set oExplorer = Application.ActiveExplorer
    If oExplorer.Selection.Item(1).Class = olMail Then
        Set oOldMail = oExplorer.Selection.Item(1)
        Set oMail = oOldMail.Reply
        oMail.Recipients.Item(1).Resolve
        If oMail.Recipients.Item(1).Resolved Then
            'delete reply email from sent items
            oMail.DeleteAfterSubmit = True
            oMail.Send
              'delete original email from inbox
            oOldMail.Delete
        Else
            MsgBox "Could not resolve " & oMail.Recipients.Item(1).Name
        End If
    Else
        MsgBox "Not a mail item"
        End If

End Sub

子应用程序_ItemSendByVal Item As Object,Cancel As Boolean将在即将发送项时调用

正在发送的项是ByVal Item中作为对象的项

您创建了第二封邮件,邮件集为oMail=oOldMail.Reply

即使您现在删除了Set oMail=oOldMail.Reply和oMail.Send,代码也存在其他问题

在撰写回复时,您可以执行其他操作并更改选择。Set oOldMail=oExplorer.Selection.Item1将无法获取原始邮件

对于您撰写的新邮件,没有原始邮件。您最后所做的选择将是oOldMail,并将被删除


您需要更复杂的代码来处理这两种情况。

我不确定上面的脚本做什么-发送消息时,您抓取所选消息并回复它。调用Send将再次触发ItemSend。我很惊讶你没有进入一个无限循环。