之前跟大家分享过一个批量给指定的人员发送带附件的邮件的文件,不过邮件主题和邮件内容是一样的。
最近,有个小伙伴就来问了:那如果给指定的人员写不同的主题和邮件,有没有办法实现呢?
答案是肯定的。
直接将文件中的代码改动一下就可以了。本案例就稍微跟大家分享一下:如何去看懂一些小代码,可以将别人的拿来变成自己需求的。
打开文件后,先看一下,这里有两张工作表,其中第一张工作表标签名称是:发送清单;第二张工作表标签名称是:正文。
第一张工作表中大家看一下收件人的单元格是从第一行第二列开始的,附件地址是第三列第二行开始的。
为什么要注意这些信息,稍后就知道了。
再来看看正文中的内容信息:
先转到发送清单工作表,在附件地址列前面插入两列,分别写上主题和正文内容,如下:
完成之后,使用快捷键ALt F11打开VB编辑器。
其实大部分看不懂没啥关系,重要的是先来学习几个英文单词。
第一个:Worksheets
工作表的意思,所以看到worksheets("发送清单")指的就是发送清单这张工作表的意思;
第二个:Cells
单元格的意思,后面括号一般是两个参数,也就是两个数字,第一个参数代表行,第二个代表列,所以代码中我们看到一开始rowCount=2,那么Cells(rowCount,3),也就是Cells(2,3)代表的是第2行第3列所在的单元格;
在我们没有加入新的列之前,这个是附件地址下面那一行,既然我们中间插入了两列,那么附件地址就变成了第5列,所以这里的3可以直接改成5;
接下来的地方就只需要改这两个地方的内容就可以了。因为代码的逻辑都一样,唯一不同的就是单元格引用的地址不一样而已,我们只需要确定代码中引用的单元格的地址是正确的就可以了。
To = Cells(rowCount, 1)这里是指收件人,我们之前没有动它,所以不用管;
CC是抄送,也不用管,因为也没动;
Subject是邮件主题的意思,而且这一列是新增的,我们看到原代码中写的是Worksheets("正文").Cells(1, 2),意思就是指正文工作表中的第一行第二列,Cells(1,2)这个是个固定值,未来都不会有变化,我们现在正文工作表压根没用了,所以这里可以直接参照前面To和CC中代码的写法,将其改成:
Subject = Cells(rowCount, 3)
为什么是3,因为主题我们放在了第三列嘛;
同样的道理,邮件内容改为:
Body = Cells(rowCount, 4)
大功告成了,是不是超级简单,我们关闭代码窗口,来测试一下。
回到Excel工作表中,现在正文工作表压根没用,可以直接删除了。随便写几个内容先: