怎么批量从excel发邮件

 我来答
BAIXINGR

2018-01-18 · TA获得超过3万个赞
知道大有可为答主
回答量:2.9万
采纳率:89%
帮助的人:8628万
展开全部

方法/步骤

  • 按照下图整理工资明细表

    1,列数可自行新增删除;

    2,如果整理的数据列,无法发送邮件的请把表头内添加大写字母“X”;

    3,工作表名称用作了邮件主题,发送前请修改工作表名称;

  • 启用开发工具选项卡;插入命令控件;修改控件名称及显示名;

  • 进入VBA编程界面;复制以下代码到编辑窗口。

    Private Sub 全自动发送邮件_Click()

    '要能正确发送并需要对Microseft Outlook进行有效配置

    On Error Resume Next

    Dim rowCount, endRowNo, endColumnNo, sFile$, sFile1$, A&, B&

    Dim objOutlook As Object

    Dim objMail As MailItem

    '取得当前工作表数据区行数列数

    endRowNo = ActiveSheet.UsedRange.Rows.Count

    endColumnNo = ActiveSheet.UsedRange.Columns.Count

    '取得当前工作表的名称,用来作为邮件主题进行发送

    sFile1 = ActiveSheet.Name

    '创建objOutlook为Outlook应用程序对象

    Set objOutlook = CreateObject("Outlook.Application")

    '开始循环发送电子邮件

    For rowCount = 2 To endRowNo

    '创建objMail为一个邮件对象

    Set objMail = objOutlook.CreateItem(olMailItem)

    With objMail

    '设置收件人地址,数据源所在列数

    .To = Cells(rowCount, 5)

    '设置抄送人地址(从通讯录表的'E-mail地址'字段中获得)

    '.CC = Cells(rowCount, 0)

    '设置邮件主题,取值工作表名,

    .Subject = sFile1

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

    'align  单元格文本显示方式 left(向左)、center(居中)、right(向右),默认是center, width-宽 height-高  border 单元格线粗细,bordercolor返回或设置对象的边框颜色

    'colSpan是一种编程语言,其属性可设置或返回表元横跨的列数

    sFile = "<tr>您好!<br> 以下是您" + sFile1 + ",请查收!</tr>"

    sFile = sFile + "<table align='left' width='500' height='25' border= 1   bordercolor='#000000'> <tbody> "

    sFile = sFile + "<tr>  <td colspan ='4' align='center'> 工资表</td> </tr> "

    B = 1

    For A = 1 To endColumnNo

    '数据表头中添加“X”后将不发送此字段

    If Application.WorksheetFunction.CountIf(Cells(1, A), "*X*") = 0 Then

    If B = 1 Then

    sFile = sFile + "<tr>  <td width='20%' height='25'> " + Cells(1, A).Text + "   </td> <td  width='30%' height='25'> " + Cells(rowCount, A).Text + "</td>"

    B = 0

    Else

    sFile = sFile + "<td width='20%' height='25'> " + Cells(1, A).Text + "   </td> <td  width='30%' height='25'> " + Cells(rowCount, A).Text + "</td> </tr>"

    B = 1

    End If

    End If

    Next

    .HTMLBody = sFile

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

    .Attachments.Add Cells(rowCount, 24).Value

    '自动发送邮件

    .Send

    End With

    '销毁objMail对象

    Set objMail = Nothing

    Next

    '销毁objOutlook对象

    Set objOutlook = Nothing

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

    MsgBox rowCount - 2 & "个员工的工资单发送成功!"

    End Sub

  • 大功告成,测试图如下

  • 提示:用户定义类型未定义异常处理办法

    处理办法:点击工具-引用-勾选<microsoft outlook 14.0 object library>

  • 提示:点击发送OUTLOOK安全提示

    处理办法:点击文件-选项-信任中心-信任中心设置-编程访问-勾选从不向我发出可以活动警告

  • 7

    提示:编程访问无法勾选显示灰色时

    处理办法:控制面板-用户帐号-点击用户帐号-更改用户账户控制设置-调到从不通知,重启电脑,调整完毕OUTLOOK设置可以再调整回来。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式