第三节 利用MailMerge实现EXCEL信息的模板化输出
大家好,今天,我们将解释MailMerge的使用来实现信息的模板输出。许多朋友不熟悉Mailmerge。确实,如果您不是专业人士,那么您很少使用这个词的这个功能。我们今天的内容只是使用此功能来完成我们信息模板输出的目的。
为了实现场景,我们在Excel中有一些数据。我们需要使用这些数据并根据模板制作一些Word文档。下图是我们存储在电子表格中的数据:
我们需要根据这些数据生成一些交货说明,并且交货说明的格式如下:
在交付注的格式中,产品号值,收货人值,地址值和数量值和检查值必须对应于Excel表中的相应数据,形成一个单词格式的运输注释,其中包含产品编号为文件名。我相信,在看到上述对实施方案的描述后,许多朋友会感到非常熟悉。是的,此过程是运输过程,各种规模的公司都相似。那么如何实施这种情况?让我们来做这个任务
1 实现excel中数据模板化输出的思路分析
整个过程的想法相对清楚,主要是代码的实现。在我的一系列教程中,我强烈提倡“构建块编程”的想法。每个人都应该学会纠正构建块并结合构建块以完成其实际工作。不要尽可能多地写源代码。当然,了解源代码更有利于我们使用。
2 实现excel中数据模板化输出的代码实现
我将首先发布本讲座的实际测试代码,然后简要说明:
sub mynzc()\’将excel文件与单词模板文件合并到新文件中
昏暗的objword作为对象,objwordnew作为对象
昏暗的objmerge作为对象,objfso作为对象
Dim Avntfield作为变体
strcopymypath=thisworkbook.path\’\\ 015m template.docx\’
strnewpath=thisworkbook.path\’\\ template temp.docx\’
设置objfso=createObject(\’scripting.filesystemobject\’)
objfso.copyfilestercopymypath,strnewpath
strmypath=thisworkbook.path
设置objword=createObject(\’Word.Application\’)
与objword
设置objwordnew=.documents.open(strnewpath)
objword.visible=false
与.castivecument
.mailmerge.opendatasource _
name:=thisworkbook.fullname,_
Connection:=\’Provider=Microsoft.ACE.OLEDB.12.0; data Source=\’ThisWorkBook.fullName\’; \’,_
SQLSTATEMENT:=\’SELECT *从`sheet2使用MailMerge实现Excel信息的模板输出- 当今的头条新闻\’,subtype:=1
avntfield=array(\’产品编号\’,\’colmignee\’,\’squormes\’,\’duntity\’,“检查”)
\’将光标移至第一行
objword.selection.homekey Unit:=wdline
对于i=0到ubound(avntfield)
“找到avntfield(i)\’域\’
objword.selection.find.execute(avntfield(i)\’value\’)
\’用名为avntfield(i)的邮件合并域代替选择。
下一个
设置objmerge=.mailmerge
与objmerge.datasource
j=1 to .recordCount
\’将记录J与主文档结合在一起。
.firstrecord=j
.lastrecord=j
\’提取记录的名称
strmyname=.datafields(1).value
执行合并
.parent.ectute
\’保存文件
objword.activedocument.saveastrmypath\’\\\’strmyname\’.doc\’
objword.activedocument.close true
\’指向结果集中的下一个记录。
.ACTIVERECORD=-2
下一个
OBJWORDNEW.CLOSE
objword.quit
杀死Strnewpath
设置objwordnew=没有
设置objword=没有
设置objfso=没有
设置objmerge=没有
msgbox“文件处理已完成”
代码的部分屏幕截图:
代码说明:
strcopymypath=thisworkbook.path\’\\ 015m template.docx\’
strnewpath=thisworkbook.path\’\\ template temp.docx\’
设置objfso=createObject(\’scripting.filesystemobject\’)
objfso.copyfilestercopymypath,strnewpath
2)strmypath=thisworkbook.path
设置objword=createObject(\’Word.Application\’)
与objword
设置objwordnew=.documents.open(strnewpath)
objword.visible=false
打开模板temp.docx文件文件
3).mailmerge.opendatasource_
name:=thisworkbook.fullname,_
Connection:=\’Provider=Microsoft.ACE.OLEDB.12.0; data Source=\’ThisWorkBook.fullName\’; \’,_
SQLSTATEMENT:=\’SELECT *从`sheet2使用MailMerge实现Excel信息的模板输出- 今天\’,_
sqlstatement1:=\’\’,_
亚型:=1
以上代码设置了Mailmerge的OpenDatasource。对于OpenDataSource方法,其功能是将数据源附加到指定的文档,如果文档不是主要文档,则将成为主要文档。
有关设置,请参阅以下语法:
expression.opendataSource(名称,格式,确认转换,ReadOnly,linktosource,addTorecentFiles,passworddocument,passwordTemplate,retervert,write passworddocument,writepassworddocument,writepasswordtemplate,connection,sqlStatement,sqlStatement 1,sqlStatement1,openExclusive,sub type)
有很多参数:让我们向一些重要参数解释:
ANAME必需的字符串数据源文件名。
B连接可选变体A将执行SQLSTATEMENT指定的查询范围。
c sqlStatement可选变体定义了查询选项以检索数据。
DSQLSTATEMENT1可选变体如果查询字符串超过255个字符,则SQLSTATEMENT指定字符串的第一部分和SQLSTATEMENT1指定第二部分。
4)对于i=0到ubound(avntfield)
“找到avntfield(i)\’域\’
objword.selection.find.execute(avntfield(i)\’value\’)
\’用名为avntfield(i)的邮件合并域代替选择。
下一个
以上代码完成了数据源和模板文件的合并规范。
5)与objmerge.datasource
j=1 to .recordCount
\’将记录J与主文档结合在一起。
.firstrecord=j
.lastrecord=j
\’提取记录的名称
strmyname=.datafields(1).value
执行合并
.parent.ectute
\’保存文件
objword.activedocument.saveastrmypath\’\\\’strmyname\’.doc\’
objword.activedocument.close true
\’指向结果集中的下一个记录。
.ACTIVERECORD=-2
下一个
上面的代码完成了源文件和模板文件的合并和输出保存。
3 实现excel中数据模板化输出的实现效果
当我们单击运行按钮时,将在同一文件夹中生成几个输出文件:
让我们打开第三个查看数据的输出结果:
我们看到输出正是我们期望的。
在本节中,知识点的奉献精神:
如何通过模板输出到Word?
MailMerge的功能是什么?
此讲座代码参考文件:015 Worksheet.xlsm
积木编程的思路内涵:
在我的一系列书籍中,我一直强调“构建构建块”的编程思想,这也是学习使用VBA的主要方法,尤其是对于必须采用此解决方案的劳动人员。它的主要含义:
1不要自己输入所有代码。您需要做的是将构建块放在正确的位置并纠正代码。您必须复制它们,从构建块库中复制它们,然后更正代码,然后利用您的时间进行有效的思考。
2建造自己的“建筑库”。在学习过程中,将您认为有用的代码组合在一起,并积累更多的代码。您可以随时使用它。您在构建块库中拥有的信息越多,制作程序的想法就会越来越大。
VBA的应用界定及学习教程:
VBA是使用办公室实现个人小型办公室自动化的有效手段(工具)。这是我对VBA的定义。在替代办公室到达的新办公软件之前,国王将成为数据处理最终的人。其中,最极端的技能是VBA!
我记得当我20年前刚开始使用VBA时,当时的信息很少,所以我只能阅读源代码并自己考虑。这真的很困难。 20年过去了。为了防止我正在研究VBA的朋友重复以前的经验,我根据我多年的实用VBA利用经验推出了六个VBA特别教程。目前,这些教程通过了32位和64位办公系统测试。
第一组:VBA代码解决方案是对VBA中各种知识点的解释。该教程总共有147次讲座,涵盖了大多数VBA知识点。提供的程序文件是罕见的代码宝藏,是初学者和中级人员的必备教程。该集由这组教程提供的版本当前在第二版中进行了修订,并且程序文件已通过了32位和64位Office System测试。
第二组:VBA数据库解决方案。数据库是用于数据处理的专业工具。该教程详细介绍了使用ADO连接ACCDB和Excel的方法和示例操作,该操作适用于学习中级人员。目前,本教程提供了首个教程的修订版,并且程序文件通过了32位和64位Office系统测试。
第三组:VBA阵列和字典解决方案。阵列和词典是VBA的本质。词典是提高VBA代码级别的有效手段。他们值得深入学习,并且是改善初级和中级人员代码的一种手段。当前,本教程提供的版本是修订版的第一个版本,并且程序文件已通过两个办公系统进行了测试:32位和64位。
第四组:VBA代码解决方案视频是专门针对初学者的视频说明。您可以快速入门,并更快地掌握这项技能。这组教程是对第一组教程(修订版)的视频说明,并且在收听元音时更容易接受。本教程还将提供通过32位和64位办公系统测试的其他程序文件。
第五:VBA中类的解释和利用这是一个高级教程,可以解释阶级的虚荣和身体的身体状况。尽管班级的使用较少,但仔细的研究可以促进您的VBA理论的改善。对这组教程的理解主要是读者的理解和对佛教哲学的理解。当前,本教程提供的版本是修订版的第一个版本,并且程序文件已通过两个办公系统进行了测试:32位和64位。
第六组教程:《VBA信息获取与处理》,这是一个高级教程,涉及更广泛的范围并且更实用,并且针对中间人和高级人员。本教程有二十个主题,包括:跨应用信息获取,随机信息利用,电子邮件发送,vba互联网数据获取,VBA延迟操作,剪贴板应用程序,拆分功能扩展,工作表信息与其他应用程序,FSO对象的使用,FSO对象利用,工作表信息获取,图形信息获取,图形信息录取,图形信息驱动和自定义工作单。通过两个办公系统测试程序文件:32位和64位。
上述教程的学习顺序:13265或43265。提供的程序文件是一个巨大的代码库,供读者使用。如果需要,可以使用Wechat: NZ9668
学习VBA是个过程,也需要经历一种枯燥的感觉
\’鸟儿飞得很高,孤独的云朵释放了自己。我们永远不会厌倦彼此见面,只有叮当山。学习过程也是培养思想,培养平静思想的过程。在代码世界中,思想是平静的,心情很好,身体自然是好的。如果思想平静,正确的人将是。如果内心没有那么多邪恶的知识和观点,就不会有那么多妄想。受益于他人意味着自私。我的教程帮助正在努力工作的朋友。
“水很擅长在没有战斗的情况下使所有事物受益”,它是连续而稠密的,很小的时候保持沉默,并且在巨大时飙升。学习也是如此。知道你需要什么。不要在您认为是天堂的小世界中curl缩,然后等到您的老年才能进行自欺欺人。我们必须努力工作以改善自己,使用充满活力的心并掌握现在。这是进取的。事情越有意义,他们将会越多。意愿决定了目的,智慧决定了成功或失败。无论您遇到什么,这都是一种风景。赔率,损失无动于衷。学习时,它很小但保持沉默,并且在使用它时,它很大,而且正在迅速。 “这条路漫长而艰巨,我会上下搜索”
收获的每个点都是增长的记录,无论您如何不取得成长吗?正是这种持久性使早晨发光的光彩。最后,我想为致力于VBA学习的朋友提供歌词,以便每个人都能感受到学习过程的无聊和持久性:
乌云通过,秘密单词是沉默的,
只有微风使梦中的金莺震惊。
看着星星,稀疏的北斗七星,
但是过去伴随着鹅。
黑暗的灯光明亮而黑暗,
耐心等待GU改变。
多少个VBA人,
在漆黑的夜晚,我悄悄地寻找自己的梦想,希望黎明。
如果没有限制,怎么可能!
用户评论
减肥伤身#
这个方法太厉害了!我平时一直用Excel导出数据再导入word打字麻烦死了,现在不用这办法就能直接生成模板,效率简直爆表!要赶紧试试看!
有14位网友表示赞同!
浮殇年华
终于有人解决了我的痛点!每次邮件发送都需要单独修改表格信息,真是让人头疼。利用MailMerge实现模板化输出,是不是可以同时将多个Excel表格数据导入到不同邮件模板中?
有15位网友表示赞同!
早不爱了
文章介绍的步骤清晰易懂,对于像我这种刚接触MailMerge的人来说非常友好。不过我想知道这个方法能不能用于其他软件文件,比如txt或者PDF?
有17位网友表示赞同!
暮光薄凉
看到有人说MailMerge可以实现EXCEL信息的模板化输出,但我感觉这只是部分功能吧?它还能不能做到更复杂的操作,比如合并不同的模板,添加复杂条件判断等等?
有10位网友表示赞同!
那伤。眞美
对于我们经常需要批量发送邮件的用户来说简直是神器啊!以前写邮件都耗费了不少时间,有了这个工具可以节省很多时间和精力。一定要好好学习一下它的使用方法!
有7位网友表示赞同!
孤单*无名指
这篇文章介绍的MailMerge功能听起来不错,但是我有些疑虑。是不是在使用过程中会存在一些兼容性问题?不同的操作系统或软件版本会不会影响到使用效果呢?
有20位网友表示赞同!
心贝
我觉得这个方法非常实用,尤其是对于那些需要频繁发送个性化邮件的用户来说太棒了!希望以后能看到更多关于MailMerge的教程和应用案例。
有20位网友表示赞同!
各自安好ぃ
我感觉这篇文章写的有点过于浅显了,没有深入讲解 MailMerge 的一些高级用法,比如如何自定义模板样式、实现更复杂的逻辑操作等等。 希望作者能够在后续文章中进行更详细的介绍。
有18位网友表示赞同!
淡抹丶悲伤
我一直觉得MailMerge这个功能简直太方便了!尤其是在我需要批量发送带有特定信息邮件的时候,这个工具可以帮我节省很多时间和精力。
有12位网友表示赞同!
十言i
看了这篇文章后我打算学习一下 MailMerge 的使用方法,感觉这种模板化输出的方式确实比较高效,可以提高工作效率很多。
有15位网友表示赞同!
╭摇划花蜜的午后
说实话,我对MailMerge的概念并不陌生,但我之前一直没有真正尝试过使用它。希望通过这篇文章能更好地了解它的功能和应用场景,看看能不能在工作中有所利用。
有5位网友表示赞同!
空谷幽兰
这篇文章介绍的 MailMerge 功能听起来很有意思,但我感觉对于不太熟悉编程的用户来说学习曲线可能有点陡峭。
有11位网友表示赞同!
为爱放弃
我觉得Mail Merge 这种方法很有潜力,尤其是在大数据处理和智能化办公方面可以发挥很大的作用,希望能看到更多关于它的应用案例。
有9位网友表示赞同!
一别经年
我是一个EXCEL小白,看了这篇文章感觉MailMerge 的操作还是比较复杂的。希望能够有一些更具体的教程,帮助我们更轻松地上手这款功能。
有5位网友表示赞同!
你很爱吃凉皮
利用EXCEL信息的模板化输出确实可以提高工作效率,但这篇文章只是介绍了 MailMerge的基本使用方法,并没有深入探讨它的应用场景和技巧。我希望作者能够继续更新文章,分享一些更有用的经验和案例。
有19位网友表示赞同!
鹿叹
我平时主要使用 Microsoft Word 进行文档编辑,不知道Mail Merge的这种功能是否可以使用在Word中? 希望有相关信息可以解答我的疑问。
有13位网友表示赞同!
空巷
这篇文章介绍的技术听起来挺酷的,但是对于像我这种非专业人士来说,可能不太好理解。我希望能够有更直观的案例和解释,帮助我们更容易地学习使用Mail Merge功能。
有6位网友表示赞同!
厌归人
我相信随着时间的推移,MailMerge这种技术会越来越受欢迎,因为它的应用场景越来越广泛。希望以后能看到更多关于它的研究和发展方向。
有19位网友表示赞同!