【问题标题】:Paste E-mail Address from Excel cell to to Outlook将电子邮件地址从 Excel 单元格粘贴到 Outlook
【发布时间】:2022-01-26 15:23:08
【问题描述】:

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

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

我知道如何复制内容,但 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

【问题讨论】:

  • 你能发布你的电子表格的样子吗?
  • 这里是添加电子邮件列表stackoverflow.com/a/38303646/4539709的示例
  • @0m3r 这是一个简单的电子表格,有两个相关的列,电子邮件地址和出生日期。日期用于在 D 列上进行高级过滤(没问题),在 B 列上有电子邮件地址列。
  • 感谢您回复的示例,但我不知道如何只发送一封包含密件抄送字段中所有地址的电子邮件。

标签: excel vba outlook


【解决方案1】:

您无需将电子邮件地址复制到剪贴板并粘贴。您可以直接将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

【讨论】:

  • 我已经尝试过这样做,但没有成功。似乎很容易,但我已经是该语言的新手,那么如何将该属性指示为 Outlook 识别的字符串?这也适用于 Cells 引用?
  • 使用 Text 属性 (Range.Text)
  • 我试过了,但没有导出到 Outlook。我必须先定义另一条指令?
  • 请展示您的尝试。
  • 太棒了!我已经在尝试只选择“B”列中的可见数据。得到它,它就完成了。非常感谢,德米特里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 2019-02-04
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
相关资源
最近更新 更多