使用Outlook模板和设置variables从Excel 2007 VBA发送电子邮件
我有一个数据列表,让我们说客户端信息(姓名,电子邮件,欠金额等),存储在一个Excel工作表。 我的目标是在Excel中单击一个button,并在Outlook模板中向每个客户发送他们的信息。
- 创build一个邮件对象
- 将邮件对象设置为模板文件
- 设置,然后用关于当前客户端的数据填充模板 – 大多停留在这里,不知道如何指定模板中的variables,然后在VBA中与它们关联
- 保存到草稿供以后审查/发送
例如。 亲爱的<clientname> =亲爱的约翰·史密斯
我的代码到目前为止:
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
或者,如果您的邮件是HTML:
With MyItem 'Refer to and fill in variable items in template .HTMLBody = Replace(.HTMLBody, "<< clientname >>", Worksheets("Clients").Range(1, 2)) End With
在Excel / Outlook 2007上成功testing
这是邮件合并的完美工作。 如果您想以编程方式执行此操作,请参阅
邮件合并在Word + Excel中使用VBA
或者你可以简单地手动(从Word),插入合并域,然后select您的工作簿作为数据源。 您可以合并到电子邮件,Outlook将使用每行/logging中的信息向每个收件人的电子邮件发送个性化电子邮件。