word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)
word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)
2024-06-26 07:38:58  作者:那伤依存  网址:https://m.xinb2b.cn/life/sij275227.html

前景提要(文末提供源码下载)

word的邮件合并功能,相信大家都非常的熟悉了,一些固定模板的批量打印功能都会用到这样的操作,但是很多时候我们的数据是Excel中的,那么我们是否能够在Excel中实现类似于word中这种邮件合并的功能呢?

代码区

其实这样的话,就有点类似于我们之前学过的Excel的数据汇总的逆推,数据的拆分了,按照计划,我们很快就会接触到更多类型的数据的拆分了,我们这里就先热个场,提前接触下数据的拆分,之所以在这里说数据拆分,主要还是因为他的操作也类似于在多个工作表中同时进行数据填充,和我们之前的内容又有一点关系,所以正好有承上启下的作用

来看看我们的场景

现在我们手上的这个工作表里面有两个表,一个就是成绩总表,一个就是模板,类似于我们通知的模板,

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(1)

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(2)

我们现在需要将总成绩的表中所有的同学的成绩按照模板中指定的样式进行填充,并且形成一个人一个工作表的样式来进行打印,并交给学生查看。如果手动复制粘贴,这个工作量就非常的大了,因为不仅仅是复制粘贴,还要找到正确的位置,所以这里我们需要使用VBA来帮助我们实现这样的功能。

Sub sssss()Dim rng As Range, sth As Worksheet, sthn As WorksheetSet rng = Application.InputBox("请选择数据源,不含表头", "数据源的确定", , , , , , 8)For i = 1 To rng.Rows.Count arr = rng.Rows(i) Worksheets("模板").Copy after:=Worksheets(Worksheets.Count) ActiveSheet.Name = arr(1, 1) Set sthn = ActiveSheet sthn.Cells(4, 3) = arr(1, 1) sthn.Cells(4, 5) = arr(1, 2) sthn.Cells(6, 4) = i sthn.Cells(8, 4) = arr(1, 3) sthn.Cells(9, 4) = arr(1, 4) sthn.Cells(10, 4) = arr(1, 5) sthn.Cells(11, 4) = arr(1, 6) sthn.Cells(12, 4) = arr(1, 7) sthn.Cells(13, 4) = arr(1, 8)Next iEnd Sub

看着代码挺长,请示非常的简单,中间一大段都是理解之后就非常的简单了。

先来看下效果

首先我们需要选择好数据源的范围,这里的数据源我的设计是不含表头的,因为在这里表头并没有任何的用处,我们可以根据实际的需要进行调整数据的位置

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(3)

确定了数据源的范围之后,程序就可以开始运作了,我们来看看最终的结果

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(4)

我们选择最后一个A22的成绩来对比下,看看是否正确

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(5)

完全是没有问题的,非常的完美。

代码分析

虽然说今天的代码比较的长,但是理解之后就会觉得非常的简单,我们来看看代码的操作流程

Set rng = Application.InputBox("请选择数据源,不含表头", "数据源的确定", , , , , , 8)

首先我们确定数据源的范围,这里前面也说明了不需要选择表头,大家可能比较的疑惑,不是应该对着表头来填入数据嘛

我们来看看模板终端这些字段,我们都能够在内容中找到数据源中找到具体的位置,并且格式都是固定的,这个时候我们反而不需要那么麻烦去通过表头来选择,直接通过固定的位置来选择反而更加的快,而且代码简单

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(6)

然后我们将数据源的每一行,装入数组中,这样每一行都是一个数组,我们只需要将数组中的内容填入新建的工作表中对应的位置就可以了。

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(7)

可以看出来,数组中每个元素的顺序正好就是每一行数据的顺序,我们有了这个顺序之后就可以根据字段在模板中的位置,来进行一一对应了。

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(8)

姓名是在模板中的cells(4,3)的位置,而姓名在数组中是第一个,所以是arr(1,1)

最终结果就是

sthn.Cells(4, 3) = arr(1, 1)

其他的都是按照这个标准依次类推,就算是这个过程中出现了某些字段没有按照这个顺序来的,也不要紧,我们直接在代码中进行更改就可以了。 更成对应的位置

假设我们这里讲化学和物流的位置更换下

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(9)

我们也仅仅是需要更换下代码中的顺序就可以了

word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)(10)

=======================================================

本节课的案例源码已经上传,需要的小伙伴后台私信“7-47-05”,希望大家多支持~~,多多关注 ~ ~

好了,明晚19:00,准时再见!

  • 老话三寸长寿四寸无忧(农村老人常说三寸长寿)
  • 2024-06-26农村老人常说三寸长寿古代时的一寸等于今天的3.3厘米左右,所以三寸也就是10厘米最后高,古人认为睡觉时枕着这样的枕头入眠对人的身体健康是有好处的,可以益寿延年由于古人睡觉时枕的枕头和今天的人不一样,古人的枕头都是方方正正。
  • 李白意境最美最难以超越的诗(一首诗就是一幅画)
  • 2024-06-26一首诗就是一幅画《望天门山》是李白初出巴蜀之作,其构图雄伟壮丽,将天门山雄浑的气势展现得淋漓尽致,完全看不出是一位二十多年的青年所作,不愧为千古绝品一首诗就是一幅画唐玄宗开元十三年(公元725年)春夏之交,二十五岁的。
  • 考塔吊指挥证要几天(塔吊指挥证好考吗)
  • 2024-06-26塔吊指挥证好考吗中国是一个工业制造大国,日常生活中到处都有施工现场,指挥在施工中起着重要的作用建筑信号科的索司机,又叫“指挥司机”,经常在施工现场担任指挥工作,指挥吊车等机械的运行起重机械指挥人员,顾名思义,指挥起重。
  • 英语单词拼读规律解码(图说英语单词拼读规则)
  • 2024-06-26图说英语单词拼读规则一口气背音标:图说英语单词拼读规则,掌握最基础最关键部分围绕音标与字母字母组合发音我做了一个终极版字母字母组合发音,与音标结合系统归纳了所有字母不同发音,所有常见字母组合不同发音在音标背诵默写的框架之。
  • 朋友邮寄布洛芬用奶茶杯伪装(一盒布洛芬检验室友人品)
  • 2024-06-26一盒布洛芬检验室友人品硕士生最怕选到磨人导师,本科生最怕分到奇葩室友近几年,大学生因宿舍矛盾而爆发的投毒案屡见不鲜,看的人后背发凉,对于这种需要朝夕相处的同学而言,就算性格合不来,不能成为超越同学情谊的密友也会尽量避免爆发。
  • 各执己见的执的意思是什么(执对应解释)
  • 2024-06-26执对应解释各执己见的执释义:坚持各执己见,汉语成语,拼音是gèzhíjǐjiàn,意思是各人都坚持自己的意见成语出处:宋·钱易《南部新书·乙》:“凡中书有军国政事,则中书舍人各执所见,杂署其名,谓之五花判事”成。
  • 五月二十日是什么日子(5.20是什么日子)
  • 2024-06-265.20是什么日子5月20日,一个原本平常的日子也被赋予了特别的意义,一个以“我爱你”为主题的节日呼之欲出,爱如潮水般向我们涌来,并且大有取代西方情人节和中国传统七夕情人节之势被赋予了浓厚爱意的“5·20”其受追捧程度。
  • 3ds主题有上限吗(3DS主题商店坂本ですが主题上线)
  • 2024-06-263DS主题商店坂本ですが主题上线3DS的用户可以根据自己的喜好在主题商店中选择主题购买下载,今日,任天堂主题商店发出重磅主题,人气动漫“逼王坂本”噢不对……是《坂本ですが?》主题上线了,售价为200日元,喜欢坂本,想跟着逼王学姿势的。