我有一个数据列表,比如存储在Excel工作表中的客户信息(姓名,电子邮件,金额等)。我的目标是单击Excel中的按钮,并将每个客户端的信息发送到Outlook模板中。
例如。亲爱的<<客户名称>>亲爱的约翰史密斯
到目前为止我的代码:
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
我需要知道这是否可能,我可以在没有插件的情况下完成吗?如果有的话,是否有人知道我可以遵循的良好链接/教程?
提前致谢并致以亲切的问候
更新添加了我的代码并对请求进行了一些更改
答案 0 :(得分:10)
以下是您可以做的事情:
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上成功测试
答案 1 :(得分:2)
这是邮件合并的完美工作。如果您想以编程方式执行此操作,请参阅
Mail Merge in Word+Excel using VBA
或者您可以手动(从Word),插入合并字段然后选择工作簿作为数据源。您可以合并到电子邮件,Outlook将使用每行/记录中的信息向每个收件人的电子邮件发送个性化电子邮件。