Excel VBA字符串数组到Outlook电子邮件“收件人”字段
我试图创建一个宏,它将从我的Excel工作表中填入一列电子邮件地址并填充Outlook电子邮件中的“收件人”字段。我有基本的工作,我能够创建一个新的Outlook电子邮件与我指定的各种字段值 - 但是,我不知道如何填充多个电子邮件地址到“收件人”字段,一个电子邮件。Excel VBA字符串数组到Outlook电子邮件“收件人”字段
截至目前,我能够创建一个包含所有所需电子邮件地址的数组,但无法弄清楚如何将数组值填充到Outlook“To”字段中。
这是基于尤金的答案,编辑成包括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)中。 – User5590 2015-07-21 04:37:55
这可能有帮助,但概念与项目有点不同。希望这有助于过去用于类似案例但过程,只会提供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
谢谢大家。我能够完成我正在尝试使用我在此处找到的“字符串浓缩”功能:http://www.cpearson.com/excel/stringconcatenation.aspx 但是,您的解决方案非常直截了当。谢谢! – user1130306 2015-03-31 16:43:50
您可以使用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
显示你当前的代码 – 2015-03-31 16:25:50