excel批量发给每个职工邮件.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

EXCEL是科室日常工作数据处理的主要软件,如科室工作量、挂号、教学、退费、周末门诊等,最占用时间的主要有:多个文件(或工作表)的”智能”合并、按职工姓名拆分文件、批量发给每个职工邮件(带有不同的附件)等。

是不是想让软件帮助自动化实现呢?请看如下:

合并工作表/簿数据

二、按职工姓名拆分工作表为工作簿(类似工资条)

发带附件的邮件(基于outlook,不是outlookexpress)

合并工作表/簿数据:VLOOKUP函数

VLOOKUP函数=VLOOKUP(查找的值,查找区域,返回列的位置,查找的方式)

举例:=VLOOKUP(B2,[文件]工作表!:$A$1:$E$36,5,FALSE)

说明:查找区域可以是其他文件上的工作表。$表示绝对引用,以用于填充单元格

注:网上例子多多,

二、拆分一个工作表为多个文件,按某一列,一行一个文件,每个文件都带表头(类似工资条)

写一段VBA程序:

将工作表1第二行起每一行创建为一个新工作簿(独立文件),保留第一行的表头,工作簿以B列单元格值命名。(不超过200个职工),密码为bdkq,生成新的文件与源文件在同一个文件夹。(EXCEL中不能有空行)

Sub拆分()

DimiAsLong

DimnaAsString

Application.ScreenUpdating=False

Fori=2ToSheets(工作表1).Range(b200).End(xlUp).Row工作表名为:工作表1,最大200行,求是最大的行号,一行一个循环,第二行开始,第一行为标题

na=Sheets(工作表1).Cells(i,2).Value第二列为名字,保存文件时的文件名

Sheets(工作表1).Copy工作表1整体COPY,如果既不指定Before也不指定After,则将新建一个工作簿,其中包含复制的工作表。

ActiveWorkbook.SaveAsFilename:=ThisWorkbook.Path\na.xlsx,Password:=bdkq文件名,扩展名xlsx,口令

Rows(i).CopyRows(2)第i行,COPY到第2行

Rows(3:Range(b200).End(xlUp).Row).Delete第3行以下,删除

ActiveWindow.Closesavechanges:=True

Next

Application.ScreenUpdating=True

EndSub

三、批量发邮件(带相应的附件)

Alt+F11打开vba编辑器,然后在“工具”菜单中选择“引用”,并添加类似于“MicrosoftOutlook##.0ObjectLibrary”的引用,其中“##”是Outlook的版本号(如果我没有记错的话,2003是11.0,2007是12.0,2010是14.0—

Sheet1中,第2列为名字,第3列为email地址,第4列为提示用语,附件文件名为第2列的名字

Sub全自动发送邮件()

DimmyOlAppAsObject

DimmyitemAsObject

DimiAsInteger,jAsInteger

DimstrgAsString

DimattsAsObject

DimmyccAsObject

DimmyfileAsString

SetmyOlApp=CreateObject(Outlook.Application)创建outlook应用设置调用Outlook来发送邮件

设置对Sheet1工作表进行操作,数据保存于Sheet1中

WithSheets(Sheet1)

i=2第二行开始

DoWhile.Cells(i,2)第二列为KEY判断

Setmyitem=myOlApp.CreateItem(0)

Setatts=myitem.Attachments

收件人邮箱地址调用了第3列邮箱的数据

myitem.To=.Cells(i,3)

邮件标题调用了第2列姓名、第4列标题的数据

myitem.Subject=.Cells(i,2)老师,.

文档评论(0)

sis36 + 关注
实名认证
内容提供者

大数据工程师持证人

本人从事所爱好的软件研发职业,所选文档部分是选自于网络,之所以选这些文档是因为我很欣赏你的思维和才华,特此给我们大家以分享和学习的机会。如果你感觉侵犯了你的利益,请和我联系,我会尽快的删除!谢谢!

领域认证该用户于2024年03月25日上传了大数据工程师

1亿VIP精品文档

相关文档