word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)
word和Excel邮件合并(如何在Excel中实现word的邮件合并功能)
2024-05-29 02:16:19  作者:那伤依存  网址:https://m.xinb2b.cn/know/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-05-29天声美好传递温暖齐鲁晚报·齐鲁壹点记者孙沛翔1月18日,天穹文化发展有限公司与鲁南之声FM93.4“糖果儿童天穹实践基地”签约仪式在天穹文化发展有限公司举行该基地的落成,旨在落实青少年儿童品质文化教育及推进枣庄关爱青。
  • 叶玉卿演过潘金莲吗
  • 2024-05-29叶玉卿演过潘金莲吗叶玉卿没有演过潘金莲,叶玉卿是香港女演员,长的很漂亮,演过很多电影电视剧,但是并没有演过潘金莲,她还是歌手,唱过一些歌,叶玉卿年轻时参加第一届“亚洲小姐”选美活动,夺得季军、最有性格小姐和最健美小姐三。
  • 电影《狄仁杰之四大天王》评说(最好看的永远是下一部)
  • 2024-05-29最好看的永远是下一部姜文的想象力4年一轮回,徐克的狄仁杰帝国10年才打造出来,可见其用心从2010年的《狄仁杰之通天帝国》到2013年的《狄仁杰之神都龙王》,再到这次的《狄仁杰之四大天王》,徐克用十年的时间打造了一个盛世。
  • cip具体清洗流程(使用CIP系统清洁发酵罐和酿造机的步骤)
  • 2024-05-29使用CIP系统清洁发酵罐和酿造机的步骤酿造容器和发酵容器对于保持生产啤酒的卫生是非常必要的因此,有效清洁这些容器非常重要但是清洁水箱要温暖吗?我们应该注意什么程序?一般来说,根据您的啤酒厂规模,我们肯定会需要一个容量为100-1000L的。
  • 穿越成为武大郎卖烧饼(小伙穿越成武大郎)
  • 2024-05-29小伙穿越成武大郎宋朝现在的主要流通货币就是铜币,金、银、钱引(这时的一种纸币)都是在豪商们大额交易的时候才会用上1000个铜币又被称为1贯钱,对于平常百姓家来说,1贯钱已经是一笔很大的财富了武植强忍着让身体变高的欲望。
  • 新手上路怎么判断拐弯距离(新手拐弯不要怕)
  • 2024-05-29新手拐弯不要怕很多车友表示在人多的时候,总是拿捏不好转弯幅度,导致不少事故今天,我们盘点一下几个常用的转弯技巧01平路转弯平路行驶时,道路阻力小,容易加速,在进入弯道前提前放松加速踏板,使汽车平稳降速行驶转弯时根据。
  • 全身沉浸式护肤让专业的人来做(快停止无效护肤吧)
  • 2024-05-29快停止无效护肤吧都说你花的每一分钱在脸上都看得见,但你知道吗?无效护肤能让你看见的只有毫无变化的肌肤和白白浪费掉的金钱!为了抵抗岁月的侵袭,仙女们使尽浑身解数,只为多留住青春一时半刻想法很多,但你真的做对了吗?1.过。
  • 深夜食堂电子版(深夜食堂中文版)
  • 2024-05-29深夜食堂中文版日剧《深夜食堂》将被翻拍中文版?!炸了炸了,又要毁经典了!听到这个消息估计大多数人都是这个反应吧不过你再看看这主角定妆照呢?是不是对这个华语翻拍版又有点期待了呢?让黄磊来做治愈系《深夜食堂》的老板,我。
  • 吵架不是比谁厉害(吵架你赢过吗)
  • 2024-05-29吵架你赢过吗我是王大可,是一名心理领域的深耕者很多人觉得心理学很空洞很鸡汤也很理论,其实并不是这样我会用现实生活中实际真实的小案例,为你开启自我认知和自我完善的窗户,同时也会提供实操的改变方法同时也请大家记住,当。