|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
使用excel的宏,来自动群发邮件,可以实现。
不过问题是,我要发送的文本是word里面带格式的文本,这个应该怎么办呢?
'使用 Outlook 来发送邮件了
Sub SendEmailByOutlook()
'要能正确发送并需要对Microseft Outlook进行有效配置
On Error Resume Next
Dim rowCount, endRowNo
Dim objOutlook As New Outlook.Application
Dim objMail As MailItem
'取得当前工作表与Cells(1,1)相连的数据区行数
endRowNo = Cells(1, 1).CurrentRegion.Rows.Count
'创建objOutlook为Outlook应用程序对象
Set objOutlook = New Outlook.Application
Dim a As Object, b As Object
Set a = CreateObject("word.application")
Set b = a.Documents.Open("e:\shashade.doc")
'开始循环发送电子邮件,比如从第二行开始,第一行是标题
For rowCount = 2 To endRowNo
'创建objMail为一个邮件对象
Set objMail = objOutlook.CreateItem(olMailItem)
With objMail
'设置收件人地址(比如从 Excel 表的第一列“E-mail地址”字段中获得)
.To = Cells(rowCount, 1).Value '"pt98@sina.com"
'设置邮件主题(比如从 Excel 表的第二列“邮件主题”字段中获得)
.Subject = Cells(rowCount, 2).Value '"邮件主题"
'设置邮件内容(比如从 Excel 表的第三列“邮件内容”字段中获得)
'.Body = Cells(rowCount, 3).Value '"邮件内容"
.Body = b.Select '"邮件内容"
'设置附件(比如从 Excel 表的第四列“附件”字段中获得)
.Attachments.Add Cells(rowCount, 4).Value '"c:\bbb.txt"
.Send
End With
'销毁objMail对象
Set objMail = Nothing
Next
'销毁objOutlook对象
Set objOutlook = Nothing
b.Close
a.Quit
End Sub |
|