使用Outlook模板从Excel 2007 VBA发送电子邮件&;设置变量
我有一个数据列表,比如客户信息(姓名、电子邮件、欠款等),存储在Excel工作表中。我的目标是在Excel中单击一个按钮,并在Outlook模板中向每个客户发送他们的信息使用Outlook模板从Excel 2007 VBA发送电子邮件&;设置变量,excel,vba,outlook,Excel,Vba,Outlook,我有一个数据列表,比如客户信息(姓名、电子邮件、欠款等),存储在Excel工作表中。我的目标是在Excel中单击一个按钮,并在Outlook模板中向每个客户发送他们的信息 创建邮件对象 将邮件对象设置为模板文件 设置模板,然后用当前客户机的数据填充模板-主要停留在这里,不知道如何在模板中指定变量,然后在VBA中与它们关联 保存到草稿以供以后审阅/发送 e、 亲爱的约翰·史密斯 到目前为止,我的代码是: Dim myOlApp As Outlook.Application Dim MyItem A
Dim myOlApp As Outlook.Application
Dim MyItem As Outlook.MailItem
Set myOlApp = CreateObject("Outlook.Application")
Set MyItem = myOlApp.CreateItemFromTemplate("C:\egTemplate.oft")
With MyItem
.To = Worksheets("Clients").Range(1, 2)
.Subject = "Monthly bill"
'Refer to and fill in variable items in template
.Save
End With
Set MyItem = Nothing
Set MyOlApp = Nothing
以下是您可以做的:
With MyItem
'Refer to and fill in variable items in template
.Body = Replace(.Body, "<< clientname >>", Worksheets("Clients").Range(1, 2))
End With
在Excel/Outlook 2007上测试成功这是邮件合并的完美工作。如果要以编程方式执行此操作,请参阅
或者,您可以简单地手动(从Word)执行,插入合并字段,然后选择工作簿作为数据源。您可以合并到电子邮件,Outlook将使用每行/记录中的信息向每个收件人的电子邮件发送个性化电子邮件。谢谢,mate,此解决方案已经构建,正在寻求快速更改。不过我知道邮件合并有多有效,我很感激你的回答。我不同意。Word邮件合并有一些主要问题,例如:主题是固定文本-只能通过Outlook VB宏或其他程序解决。ATTICAL选项只能发送到一个电子邮件收件人。如果您想向和抄送电子邮件,则不能。您甚至不能将这两封电子邮件合并到“收件人”电子邮件地址中。布瑞恩
With MyItem
'Refer to and fill in variable items in template
.HTMLBody = Replace(.HTMLBody, "<< clientname >>", Worksheets("Clients").Range(1, 2))
End With