
Excel
每个月工资条如何发放给大家是一个头疼的事情,因为工资涉及到保密问题,用邮件吧,每个人的邮件内容都有些不一样的地方,人一多就特别容易出错;光这个发工资条就够让人忙活好长时间的了;那么怎么能快速的发放给大家呢?下面为大家介绍excel怎么批量发送邮件批量发送工资条方法,来看看吧!
方法/步骤
按照下图整理工资明细表
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
'取得当前工作表数据区行数列数
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 = 您好!
以下是您 + sFile1 + ,请查收!
sFile = sFile +
sFile = sFile + 工资表
B = 1
For A = 1 To endColumnNo
'数据表头中添加X后将不发送此字段
If Application.WorksheetFunction.CountIf(Cells(1, A), *X*) = 0 Then
If B = 1 Then
sFile = sFile ++ Cells(1, A).Text + + Cells(rowCount, A).Text +
B = 0
Else
sFile = sFile ++ Cells(1, A).Text + + Cells(rowCount, A).Text +
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
大功告成,测试图如下。
提示:用户定义类型未定义异常处理办法。
处理办法:点击工具-引用-勾选。
提示:点击发送OUTLOOK安全提示。
处理办法:点击文件-选项-信任中心-信任中心设置-编程访问-勾选从不向我发出可以活动警告。
提示:编程访问无法勾选显示灰色时
处理办法:控制面板-用户帐号-点击用户帐号-更改用户账户控制设置-调到从不通知,重启电脑,调整完毕OUTLOOK设置可以再调整回来。
注意事项
提示:发送全可以先断网,点击后再去邮箱内的发件箱看效果怎么样,不行可以删除重来的。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号