将 Excel 单元格中的电子邮件地址粘贴到 Outlook

Paste E-mail Address from Excel cell to to Outlook

我要送上生日祝福。我有一个电子邮件地址和日期列表。

我按日期筛选。如何复制电子邮件地址并发送?

我知道如何复制内容,但 Outlook 不支持粘贴配置。

Sub Envia_Emails()
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
         
    Call Filtrar_aniversario
    Worksheets("Query").Activate
    Activated.Cells(2, 2).Copy
    
    With OutlookMail
        .To = ""
        .CC = ""
        .BCC = PasteSpecial
        .Subject = "Feliz Aniversário!"
        .Body = "Feliz aniversário"
        .Display ' para envia o email diretamente defina o código  .Send
    End With
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
End Sub


Sub Filtrar_aniversario()
    Application.CutCopyMode = False
    Columns("A:D").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
        ("M4:M5"), Unique:=False
End Sub

您不需要将电子邮件地址复制到剪贴板并粘贴。您可以直接将 To / CC / BCC 属性设置为带有单个电子邮件地址或 ";" 分隔的电子邮件地址列表的字符串。

.BCC = Range("M4:M5").Text

更新 以下脚本对我来说效果很好:

Sub Envia_Emails()
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    'Call Filtrar_aniversario
    With OutlookMail
        .To = ""
        .CC = ""
        .BCC = Application.Range("A1:A1").Text
        .Subject = "Feliz Aniversário!"
        .Body = "Feliz aniversário"
        .Display ' para envia o email diretamente defina o código
        '.Send
    End With
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
End Sub

更新 2:超出我的想象:

 for each r in Application.Range("B2:B6")
   set recip = OutlookMail.Recipients.Add(r.Text)
   recip.Type = 3 'olBCC
 next