在Word 文档如何插入多个文件的内容
(浅议WORD宏的使用)
前不久有一位朋友来问我一个问题:在Word 文档如何插入多个文件的内容?当时我想这个问题简单,就告诉他选择“插入”菜单→到文本区的“对象”→“文件中的文字”→进入“插入文件”对话框,然后通过“范围(R)”
选择来插入想要的文件(的内容),见图一。这里所能插入的文件不光是WORD 文件的内容,还可以插入文本文件(TXT)、网页文件(HTM)的内容。
图一
我的这位朋友跟我说,问题没有那么简单,他要在一个WORD文件中插入
很多个文件,这样一个一个地插入效率就太低了。他的意思是要成批的插入文件。这就使人想到应该利用WORD 中的“宏操作”。我们打开“开发工具”菜单,点击“录制宏”,把上面的这一段操作记录下来,并把这段“宏”保存下来,发现有如下的宏命令:
Sub merge()
' merge 宏
Selection.InsertFile FileName:="兰州.docx", Range:="", _中国有几个直辖市
ConfirmConversions:=False, Link:=False, Attachment:=False
陈楚河父亲End Sub
上面的操作的结果是在WORD文件中插入了一个"兰州.docx"文件。如果我
们现在再运行一次这个“TT 宏”,插入的还是"兰州.docx"文件,因为文件名没
有变化。
由此我们可以看到,要想成批插入文件首先就要把这一批文件名先换名为
带有递增序号的名称,比如:
关于党的手抄报内容兰州01.docx
兰州02.docx
兰州03.docx
……苏小明简历
兰州88.docx
然后设计一个循环,随着循环的重复,主文件名“兰州”后面的序号也逐一递增,自动形成一系列文件名“兰州01.docx,兰州02.docx,……,兰州88.docx”,同时逐个插入到WORD 文档中。
现在的问题是如何将某一个目录之下的一组文件更名为带有序号的一组文件呢?有一个常用的看图软件ACDSeePro,除了它的主要看图功能外,还有许多其他功能。为某个文件夹中的一批文件换名便是
它其中的一个重要功能。现在,在“G:\在Word 文档插入多个文件的内容\余光中文选”文件夹中,有二十多个文本文件,见下图二:
图二
我们打开看图软件ACDSeePro ,然后在文件夹框中,选中:
“G:\在Word 文档插入多个文件的内容\余光中文选”文件夹,在右侧就可以看到该文件夹中的文件目录。
接着,选中该文件夹中的全部文件,选取“工具(T)”下拉菜单→“批处理(B)”→“重命名(R)…”(见图三)。
下面就进入“批量重命名”对话框(见图四),可以“设置重命名选项”,这里选定“使用模板重命名文件”复选框,选择单选按钮“使用数字替换#(N)”,在“模板(T)”的下拉框中输入“余光中文选##”;现在再看图四右侧的“预览”框,其中左边是原来的文件名,右边是将被重新命名的文件名:“余光中文选01.TXT”
“余光中文选02.TXT”
“余光中文选03.TXT”
……
“余光中文选26.TXT”
这里“余光中文选”几个字是任选的,后面的“##”是因为文件的个数是两位数,如果有几百个文件要合并就需要“###”,以此类推。扩展名.TXT是文本文件的后缀。
图三
如果被插入的文件是WORD 文件,它的扩展名有的是 .DOCX,有的扩展名是 .DOC(WORD97-2003版本的扩展名);网页文件扩展名有的是 .HTML,有的是 .HTM。
图四
下面的一个动作就是点击一下开始重命名(R)按钮,原来文件夹中文件名就全部被换名了(见图五)。
数据准备好了,接着就开始改造前面录制下来的那个“宏merge”。宏merge在运行过程中应该询问如下五点:
1待合并的该批文件在哪个文件夹中?(本例中是“G:\在Word 文档插入
多个文件的内容\余光中文选”)
2 该批文件的文件名(不含序号)什么?(本例中是“余光中文选”)
3 该批文件的文件扩展名是什么?(本例中是“.TXT”)
4 该批文件的起始序号?(本例中是  1 )
5该批文件的终止序号?(本例中是  26 )
改造后的宏merge,用了五个输入框InputBox(article, title)输入以上五个参数。
下面谈谈如何运行宏merge:选取WORD主菜单的“开发工具”点击“宏”图标,马上呈现如下画面:
点击运行按钮,在WORD文档的界面上依次出现如下五个输入框:
接着就运行宏 merge,将26个文件逐个插入到WORD 文档中来。
附录:
陈思成佟丽娅分手为了便于大家使用,将“宏 merge”的源码给各位分享:
Sub merge()
Dim msgtitle, msgdirectory, msgfilename, msgsuffix, page1, page2 As String      Dim ddirectory As String
Dim i, i0, i999 As Integer
Dim s, fname, suffix As String
'
代乐乐老公msgtitle = "合并文件的各项参数"
msgdirectory = "待合并文件所在的目录"
msgfilename = "待合并文件的文件名(不含序号)"
msgsuffix = "文件的扩展名"