首页 > 解决方案 > 如何删除地址?

问题描述

我正在尝试回复原始电子邮件发件人,并在 CC 中保留和回复原始电子邮件中 ​​CC 中的所有电子邮件地址。

Sub estimate()
    Dim origEmail As MailItem
    Dim replyEmail As MailItem
       
    Set origEmail = Application.ActiveWindow.Selection.Item(1)
    Set replyEmail = Application.CreateItemFromTemplate("C:\Utils\Outlook_Templates\Estimate.oft")
       
    replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.Reply.HTMLBody
    replyEmail.Subject = "RE: " + origEmail.Subject
    replyEmail.To = origEmail.Sender
    replyEmail.CC = origEmail.CC + ";" + replyEmail.CC
    replyEmail.Display
End Sub

这是有效的。但是在 CC 中,我经常有一些联系人(例如:John Doe),我想在回复时删除这些联系人。

我想保留除 John Doe(抄送)以外的所有电子邮件地址。

编辑:此外,当我使用它来回复电子邮件时,它会重复“收件人”和“抄送”中的电子邮件地址。这是因为我已经在“模板”的“收件人”中定义了电子邮件。无论如何,假设这是在“To”和“CC”中重复“My Boss”。如何从“CC”中删除它?

标签: vbaoutlook

解决方案


这应该有效:

Sub estimate()
    Dim origEmail As MailItem
    Dim replyEmail As MailItem
    Dim s() As String
    Dim add As String
    Dim i As Integer

    Set origEmail = Application.ActiveWindow.Selection.Item(1)
    Set replyEmail = Application.CreateItemFromTemplate("C:\Utils\Outlook_Templates\Estimate.oft")

    s = Split(origEmail.CC & ";" & replyEmail.CC, ";")

    For i = LBound(s) To UBound(s)

        If InStr(1, s(i), "John Doe") = 0 Then
            add = add & ";" & s(i)

         End If
    Next


    replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.Reply.HTMLBody
    replyEmail.Subject = "RE: " + origEmail.Subject
    replyEmail.To = origEmail.Sender
    replyEmail.CC = add
    replyEmail.Display


End Sub

推荐阅读