VBA outlook - 从 excel 检索电子邮件地址作为收件人

VBA outlook - retrieve email address from excel as recipient

我想从 excel 个单元格中检索电子邮件地址,并将它们复制为 outlook 上的收件人。

但是outlook上的"To"和"CC"都是空的

输入输出:

单元格 A1 是我要 "send to".

的电子邮件地址

单元格 A2 是我要 "CC to".

的电子邮件地址

我的VBA代码:

Sub Button1_Click()

    Dim OutApp As Object
    Dim OutMail As Object




    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)



    On Error Resume Next
    With OutMail
        .To = Cells("A1")
        .CC = Cells("A2")
        .BCC = ""
        .Subject = "This is the Subject line"

    End With
    On Error GoTo 0


    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub

如果删除 "On Error Resume Next" 就可以调试了。以下无效:

.To = Cells("A1")
.CC = Cells("A2")

尝试

.To = Range("A1")
.CC = Range("A2")

我运气更好 Recipient:

'If not defined:
'olBCC=3
'olCC=2
'olTo=1

Set OutMail = Application.CreateItem(olMailItem) 
Set myRecipient = OutMail.Recipients.Add(Range("A1"))
'myRecipient.Type = olTo
'This is default - use for clarity if desired
Set myRecipient = OutMail.Recipients.Add(Range("A2")) 
myRecipient.Type = olCC

如果您希望添加多个收件人,则必须一次添加一个

您需要添加收件人,而不是收件人、抄送或密件抄送属性。这些属性仅包含显示名称。 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

您可能会发现以下文章有帮助: