+ -
当前位置:首页 → 问答吧 → 超多rtf文件合并遇到麻烦

超多rtf文件合并遇到麻烦

时间:2007-12-16

来源:互联网

请教各位朋友

我大概有600多个rtf文件,我想合并到一个文件里面去

我用插入文件的方法合并

但是只合并了前面的几十个文件

请问这是为什么?

有没有比较好点的方法可以自动完成?

非常感谢

作者: flyrob   发布时间: 2007-12-16

QUOTE:
以下是引用flyrob在2007-12-16 10:12:46的发言:

请教各位朋友

我大概有600多个rtf文件,我想合并到一个文件里面去

我用插入文件的方法合并

但是只合并了前面的几十个文件

请问这是为什么?

有没有比较好点的方法可以自动完成?

非常感谢

欢迎flyrob!

类似这种问题,使用主控文档比较好,在主控文档下(大纲视图中),以子文档方式插入这些RTF文件(每次插入一个)。

主控文档请参考:

http://club.excelhome.net/viewthread.php?tid=272710&px=0

如果你对文件格式要求不是很严格,并且这些文件名具有规律的话,可以通过VBA的方式完成文件的插入(相当于插入/文件)。

作者: 守柔   发布时间: 2007-12-16

感谢版主的解答

想请教的是

为什么我插入子文档的时候,每次不能太多?
如果我想简单点一次就全部搞定
如何来解决
版主介绍的VBA,因为我没接触过VBA,要我自己写个VBA,短时间内难度有点大
版主能否帮忙解决下
非常感谢

ps:我要合并的rtf文档名都有规律,是从1.rtf开始到 600.rtf结束

[此贴子已经被作者于2007-12-16 10:40:50编辑过]

作者: flyrob   发布时间: 2007-12-16

QUOTE:
以下是引用flyrob在2007-12-16 10:39:45的发言:

感谢版主的解答

想请教的是

为什么我插入子文档的时候,每次不能太多?
如果我想简单点一次就全部搞定
如何来解决
版主介绍的VBA,因为我没接触过VBA,要我自己写个VBA,短时间内难度有点大
版主能否帮忙解决下
非常感谢

ps:我要合并的rtf文档名都有规律,是从1.rtf开始到 600.rtf结束


去年曾为某个网友做了一个,现在找不到了。

请确认你的文件名,然后我编一个VBA。

作者: 守柔   发布时间: 2007-12-16

我要合并的rtf文档的文件名为

1.rtf 2.rtf ......600.rtf

非常感谢

作者: flyrob   发布时间: 2007-12-16

QUOTE:
以下是引用flyrob在2007-12-16 12:25:51的发言:

我要合并的rtf文档的文件名为

1.rtf 2.rtf ......600.rtf

非常感谢

匆匆做了一个,请测试一下:

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2007-12-16 12:41:25
'仅测试于System: Windows NT Word: 11.0 Language: 2052
'№ 0287^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------
Option Explicit
Option Compare Binary
Sub InsertFiles()
    Dim MyDialog As FileDialog, vrtSelectdeItem As Variant, Doc As Document
    Dim oFile As Variant, myArray() As String, N As Integer, i As Integer, j As Integer
    Dim TempA As String, myRange As Range
    '    On Error Resume Next
    '检查是否为空
    '定义一个文件夹选取对话框
    Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
    With MyDialog
        .Filters.Clear    '清除所有文件筛选器中的项目
        .Filters.Add "所有 WORD 文件", "*.doc;*.rtf", 1    '增加筛选器的项目为所有WORD文件
        .AllowMultiSelect = True    '允许多项选择
        If .Show = -1 Then    '确定
            For Each oFile In .SelectedItems    '在所有选取项目中循环
                ReDim Preserve myArray(N)
                myArray(N) = oFile
                N = N + 1
                '                Set Doc = Documents.Open(FileName:=vrtselecteditem, Visible:=False)
            Next
        End If
    End With
    N = N - 2
    For i = 0 To N - 1
        For j = i + 1 To N
            If myArray(i) > myArray(j) Then
                TempA = myArray(j)
                myArray(j) = myArray(i)
                myArray(i) = TempA
            End If
        Next j
    Next i
    For Each oFile In myArray
        '        Debug.Print oFile
        With ActiveDocument.ActiveWindow.Selection
            .InsertFile FileName:=oFile, ConfirmConversions:=False
            .InsertParagraphAfter
            .InsertBreak Type:=wdSectionBreakNextPage
            .Collapse Direction:=wdCollapseEnd
        End With
    Next
End Sub
'----------------------

作者: 守柔   发布时间: 2007-12-16

感谢版主

测试成功

非常感谢

不过合并后是一个文档一页

由于我每个文档的内容非常少,一般都是1-2行

不知道能否不搞成一个文档一页?再次感谢

作者: flyrob   发布时间: 2007-12-16

QUOTE:
以下是引用flyrob在2007-12-16 13:00:57的发言:

感谢版主

测试成功

非常感谢

不过合并后是一个文档一页

由于我每个文档的内容非常少,一般都是1-2行

不知道能否不搞成一个文档一页?再次感谢

删除代码中的这句就可以了:

 .InsertBreak Type:=wdSectionBreakNextPage

作者: 守柔   发布时间: 2007-12-17

我也要合并,怎么运行上面的VBA?

作者: iceriverrun   发布时间: 2007-12-28

QUOTE:
以下是引用iceriverrun在2007-12-28 0:03:56的发言:

我也要合并,怎么运行上面的VBA?

1:你的Word必须要允许宏运行,即工具/宏/安全性设置为低,然后重启Word.

2:打开附件,单击常用工具栏中的第1个按钮“开始合并文件”命令。

z4kjLWJl.rar (9.05 KB)

z4kjLWJl.rar (9.05 KB)
超多rtf文件合并遇到麻烦
下载次数: 32
2007-12-28 07:05

作者: 守柔   发布时间: 2007-12-28

守柔大虾(老是容易打成瘦肉,莫非守柔版主特别喜欢吃瘦肉。呵呵。开玩笑了)我用了你上面的附件的文件合并,合并出来的文件里的文字都叠在一起了。不知道什么原因;还有这么多文件怎么操作啊?我每次都是要一个个添加合并能一次添加多个吗?希望大虾帮帮我。另:我的文件名是XX06.RTF, XX07.RTF……XX131.RTF。 用的是word2007。

作者: iceriverrun   发布时间: 2007-12-28

QUOTE:
以下是引用iceriverrun在2007-12-28 12:01:47的发言:

守柔大虾(老是容易打成瘦肉,莫非守柔版主特别喜欢吃瘦肉。呵呵。开玩笑了)我用了你上面的附件的文件合并,合并出来的文件里的文字都叠在一起了。不知道什么原因;还有这么多文件怎么操作啊?我每次都是要一个个添加合并能一次添加多个吗?希望大虾帮帮我。另:我的文件名是XX06.RTF, XX07.RTF……XX131.RTF。 用的是word2007。

在运行代码后,会打开“浏览”对话框,在这个对话框中,你可以使用CTRL+鼠标或者CTRL+A全选所有RTF文档,然后可自动合并,如果你需要修改每一个文档之间的分隔符,请使用ALT+F11进入VBE,其中有一句代码前去除注释即可:

      '            .InsertBreak Type:=wdSectionBreakNextPage

作者: 守柔   发布时间: 2007-12-28

QUOTE:
以下是引用守柔在2007-12-28 12:06:58的发言:

在运行代码后,会打开“浏览”对话框,在这个对话框中,你可以使用CTRL+鼠标或者CTRL+A全选所有RTF文档,然后可自动合并,如果你需要修改每一个文档之间的分隔符,请使用ALT+F11进入VBE,其中有一句代码前去除注释即可:

      '            .InsertBreak Type:=wdSectionBreakNextPage

前面我以为我没有提交回复的帖子,所以又回了一次。请大虾把后面的帖子删了。呵呵

我现在不知道要这么去除注释。请大虾明示啊~~~

作者: iceriverrun   发布时间: 2007-12-28

QUOTE:
以下是引用iceriverrun在2007-12-28 12:35:22的发言:

前面我以为我没有提交回复的帖子,所以又回了一次。请大虾把后面的帖子删了。呵呵

我现在不知道要这么去除注释。请大虾明示啊~~~

在VBE编辑器中,删除“ '            .InsertBreak Type:=wdSectionBreakNextPage”代码前面的撇号“'”即可。

作者: 守柔   发布时间: 2007-12-28

可以了,真是太感谢大虾了!还是要多来这里学习。谢谢~

作者: iceriverrun   发布时间: 2007-12-28

还不是很明白啊

作者: LOVECHENGXIN   发布时间: 2009-08-27

请问如果我已经知道所有要合拼的文件名及其位置, 可否把名称直接代入程序, 而跳过开启浏览对话框选择档案的部骤? 请指出应如何修改? 谢谢!

作者: neanderthal   发布时间: 2010-11-05