【问题标题】:Excel VBA array of strings to Outlook email "To" fieldExcel VBA 字符串数组到 Outlook 电子邮件“收件人”字段
【发布时间】:2015-04-01 00:34:15
【问题描述】:

我正在尝试创建一个宏,该宏将从我的 Excel 工作表中获取一列电子邮件地址,并填充 Outlook 电子邮件中的“收件人”字段。我有基本的工作,我可以使用我指定的各种字段值创建一个新的 Outlook 电子邮件 - 但是,我无法弄清楚如何将多个电子邮件地址填充到单个电子邮件的“收件人”字段中。

截至目前,我能够创建一个包含所有所需电子邮件地址的数组,但不知道如何将数组值填充到 Outlook“收件人”字段中。

【问题讨论】:

  • 显示你当前的代码

标签: vba email excel outlook


【解决方案1】:

这是基于 Eugene 的回答,经过编辑以包含 excel 实现

Sub CreateStatusReportToBoss(addRng as Excel.Range)  
  Dim myItem As Outlook.MailItem  
  Dim myRecipient As Outlook.Recipient  
  Set myItem = Application.CreateItem(olMailItem)
  For Each cell in addRng
     Set myRecipient = myItem.Recipients.Add(cell.Value)
  Next cell  
  myItem.Subject = "Status Report"  
  myItem.Display  
End Sub

【讨论】:

  • 我添加了 Microsoft Outlook 15 参考,然后在第 3 行 (CreateItem) 中出现错误“对象不支持类型或方法”。
【解决方案2】:

您可以使用 MailItem 类的 Recipients 属性来添加多个收件人。它还允许指定收件人的类型:收件人、抄送或密送。

Sub CreateStatusReportToBoss()  
  Dim myItem As Outlook.MailItem  
  Dim myRecipient As Outlook.Recipient  
  Set myItem = Application.CreateItem(olMailItem)  
  Set myRecipient = myItem.Recipients.Add("Dan Wilson")  
  myItem.Subject = "Status Report"  
  myItem.Display  
End Sub

【讨论】:

    【解决方案3】:

    这可能会有所帮助,但项目的概念有点不同。希望这对过去的类似情况有所帮助,但当然,只会提供 maproad。

    Sub CreateMail()
    
    Dim objOutlook As Object
    Dim objMail As Object
    Dim rngTo As Range
    Dim rngCc As Range
    Dim rngSubject As Range
    Dim rngBody As Range
    
    Set objOutlook = CreateObject("Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    
    With ActiveSheet
        Set rngTo = .Range("B1")
        Set rngCc = .Range("B2")
        Set rngSubject = .Range("B3")
        Set rngBody = .Range(.Range("B4"), .Range("B4").End(xlDown))
    End With
    rngBody.Copy
    
    With objMail
        .To = rngTo.Value
        .Cc = rngCc.Value
        .Subject = rngSubject.Value
        .Display
    End With
    SendKeys "^({v})", True
    
    Set objOutlook = Nothing
    Set objMail = Nothing
    Set rngTo = Nothing
    Set rngCc = Nothing
    Set rngSubject = Nothing
    Set rngBody = Nothing
    
    End Sub
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多