admin 管理员组

文章数量: 1087139


2024年3月27日发(作者:云标签打印)

在Word 文档如何插入多个文件的内容

(浅议WORD宏的使用)

前不久有一位朋友来问我一个问题:在Word 文档如何插入多个文件的内

容?当时我想这个问题简单,就告诉他选择“插入”菜单→ 找到文本区的“对

象” → “文件中的文字” →进入“插入文件”对话框,然后通过“范围(R)”

选择来插入想要的文件(的内容),见图一。这里所能插入的文件不光是WORD

文件的内容,还可以插入文本文件(TXT)、网页文件(HTM)的内容。

图一

我的这位朋友跟我说,问题没有那么简单,他要在一个WORD文件中插入

很多个文件,这样一个一个地插入效率就太低了。他的意思是要成批的插入文

件。这就使人想到应该利用WORD 中的“宏操作”。我们打开“开发工具”菜

单,点击“录制宏”,把上面的这一段操作记录下来,并把这段“宏”保存下来,

发现有如下的宏命令:

Sub merge()

' merge 宏

File FileName:="兰州.docx", Range:="", _

ConfirmConversions:=False, Link:=False, Attachment:=False

End Sub

上面的操作的结果是在WORD文件中插入了一个"兰州.docx"文件。如果我

们现在再运行一次这个“TT 宏”,插入的还是"兰州.docx"文件,因为文件名没

有变化。

由此我们可以看到,要想成批插入文件首先就要把这一批文件名先换名为

带有递增序号的名称,比如:

兰州

兰州

兰州

„„

兰州

然后设计一个循环,随着循环的重复,主文件名“兰州”后面的序号也逐

一递增,自动形成一系列文件名“兰州,兰州,„„,兰州

”, 同时逐个插入到WORD 文档中。

现在的问题是如何将某一个目录之下的一组文件更名为带有序号的一组文

件呢?有一个常用的看图软件ACDSeePro,除了它的主要看图功能外,还有许

多其他功能。为某个文件夹中的一批文件换名便是它其中的一个重要功能。现

在,在 “G:在Word 文档插入多个文件的内容余光中文选”文件夹中,有二

十多个文本文件,见下图二:

图二

我们打开看图软件ACDSeePro ,然后在文件夹框中,选中:

“G:在Word 文档插入多个文件的内容余光中文选”文件夹,在右侧就可

以看到该文件夹中的文件目录。接着,选中该文件夹中的全部文件,选取“工

具(T)”下拉菜单→“批处理(B)”→“重命名(R)„”(见图三)。

下面就进入“批量重命名”对话框(见图四),可以“设置重命名选项”,

这里选定“使用模板重命名文件”复选框,选择单选按钮“使用数字替换#

(N)”,在“模板(T)”的下拉框中输入“余光中文选##”;现在再看图四右侧

的“预览”框,其中左边是原来的文件名,右边是将被重新命名的文件名:

“余光中文选”

“余光中文选”

“余光中文选”

„„

“余光中文选”

这里“余光中文选”几个字是任选的,后面的“##”是因为文件的个数是

两位数,如果有几百个文件要合并就需要“###”,以此类推。扩展名.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 = "文件的扩展名"

page1 = "初始序号"

page2 = "最终序号"

'

ddirectory = InputBox(msgdirectory, msgtitle)

fname = InputBox(msgfilename, msgtitle)

suffix = InputBox(msgsuffix, msgtitle)

i0 = InputBox(page1, msgtitle)

i999 = InputBox(page2, msgtitle)

ChangeFileOpenDirectory ddirectory

'

If i999 < 100 Then

For i = i0 To i999

s = Trim(Str(i))

If i < 10 Then

s = fname + "0" + s

Else

s = fname + s

End If

File FileName:=s + suffix, Range:="", _

ConfirmConversions:=False, Link:=False, Attachment:=False

Next i

Else

For i = i0 To i999

s = Trim(Str(i))

If i < 10 Then

s = fname + "00" + s

ElseIf i < 100 Then

s = fname + "0" + s

Else

s = fname + s

End If

File FileName:=s + suffix, Range:="", _

ConfirmConversions:=False, Link:=False, Attachment:=False

Next i

End If

有了以上代码就可以选取WORD主菜单的“开发工具”点击“宏”图标,

在如下画面上点击 编辑 ,将上面的代码粘贴上去,就可以运行。


本文标签: 文件 插入 序号 重命名