如何用EXCEL 批量发送邮件批量发送工资条

如题所述

以WPS 2019版本为例:

关于如何用EXCEL 批量发送邮件批量发送工资条,您可考虑使用WPS2019来完成,具体步骤如下:

1、打开「工资表表格」,点击「开始-文档助手-工资条群发助手」;


2、「工资条群发助手」会自动识别表格的内容生成预览;

3、如不知道怎么写「工资条」还新建表格后进入「工资条群发助手」一键插入工资表模板。

4、在预览无误后,直接点击发送即可调用「系统默认邮件应用」来批量发送工资条给对应同事,每位同事只能收到自己的工资条。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-29
方法/步骤

按照下图整理工资明细表
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设置可以再调整回来。本回答被提问者采纳
第2个回答  2017-05-05
如果经常性的,量大的,如果喜欢便捷的,可以使用现成的工具软件呢。我有!
第3个回答  2017-09-07
我们用《工资条信使》
相似回答