许仙 发表于 2008-7-16 13:24:34

巧用Excel发送电子邮件

一年之计在于春,在这春风拂面的季节里,笔者总要通过E-mail为亲友送去一份祝福。以往笔者都是使用Excel自动给所有亲友发送电子邮件,这种方法不仅方便快捷,而且这些邮件的收件人、主题、内容、附件都不相同。一、建立亲友通讯录

  如图所示,在工作表中建立一个包含不同收件人、主题、内容和附件的亲友通讯录。
http://www.pconline.com.cn/pcedu/soft/office/excel/0504/pic/20050407-excel-1.jpg   二、使用宏实现自动发送电子邮件

  打开“工具→宏→Visual Basic编辑器”,单击“插入→模块”插入一个模块,在“工程”窗口中双击插入的模块,打开它的代码窗口,并输入以下宏:

  Sub 全自动发送邮件()

  "要能正确发送并需要对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

  "开始循环发送电子邮件

  For rowCount = 2 To endRowNo

  "创建objMail为一个邮件对象

  Set objMail = objOutlook.CreateItem(olMailItem)

  With objMail

  "设置收件人地址(从通讯录表的“E-mail地址”字段中获得)

  .To = Cells(rowCount, 2)

  "设置邮件主题

  .Subject ="新年好![来自朋友弗人的问候] "

  "设置邮件内容(从通讯录表的“内容”字段中获得)

  .Body = Cells(rowCount, 3)

  "设置附件(从通讯录表的“附件”字段中获得)

  .Attachments.Add Cells(rowCount, 4)

  "自动发送邮件

  .Send

  End With

  "销毁objMail对象

  Set objMail = Nothing

  Next

  "销毁objOutlook对象

  Set objOutlook = Nothing

  "所有电子邮件发送完成时提示

  MsgBox rowCount-1 && "个朋友的问候信发送成功!"

  End Sub

  以上代码在Excel 2000中执行通过,并且对“通讯录”和“全自动发送邮件”宏代码稍作修改就可以完成任何形式的大量邮件的发送。

E路风清 发表于 2008-12-3 22:56:41

  Next

  "销毁objOutlook对象

BOLI 发表于 2009-6-13 14:05:15

试一下,我也想学发一个呀,呵呵!:victory:

盒子燕 发表于 2009-11-1 18:44:45

我发不出去,是怎么回事

蒙会计 发表于 2010-7-17 16:44:20

很麻烦不如用QQ:( :( :(
页: [1]
查看完整版本: 巧用Excel发送电子邮件