合并指定文件夹下的所有word文件,by laohan
Sub NewNameWithDocuments()
Dim MyDialog As FileDialog, oDoc As Variant, myDoc As Document, TestDoc As Document
Dim myRange As Range, OldName As String, ErrArray() As Variant
Dim oArray As Variant, NewName As String
On Error Resume Next '忽略错误
'定义一个导致文件名出错的数组
ErrArray = Array("/", "/", "*", "?", "<", ">", "|", """", Chr(9), Chr(11), Chr(13))
'定义一个文件夹选取对话框
'Word.Documents.Open(FileName:="C:/Documents and Settings/User/桌面/"
ChangeFileOpenDirectory "C:/Documents and Settings/User/桌面/"
Set TestDoc = Word.Documents.Open(FileName:="test.doc", Visible:=True)
Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
With MyDialog
.Filters.Clear '清除所有文件筛选器中的项目
.Filters.Add "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件
.AllowMultiSelect = True '允许多项选择
If .Show <> -1 Then Exit Sub
For Each oDoc In .SelectedItems '在所有选取项目中循环
NewName = ""
'以隐藏方式打开Word文档
Set myDoc = Word.Documents.Open(FileName:=oDoc, Visible:=True)
Selection.WholeStory
Selection.Copy
Windows(TestDoc).Activate
Selection.PasteAndFormat (wdPasteDefault)
Selection.TypeText Text:="×××××××××××××××××××××××××××××××××××××××"
ActiveDocument.Save
' Set myRange = myDoc.Paragraphs.First.Range '取得第1个段落区域
' OldName = Application.CleanString(myRange.Text) '清除非打印字符
myDoc.Close False '关闭文档
Next
End With
End Sub
Sub NewNameWithDocuments()
Dim MyDialog As FileDialog, oDoc As Variant, myDoc As Document, TestDoc As Document
Dim myRange As Range, OldName As String, ErrArray() As Variant
Dim oArray As Variant, NewName As String
On Error Resume Next '忽略错误
'定义一个导致文件名出错的数组
ErrArray = Array("/", "/", "*", "?", "<", ">", "|", """", Chr(9), Chr(11), Chr(13))
'定义一个文件夹选取对话框
'Word.Documents.Open(FileName:="C:/Documents and Settings/User/桌面/"
ChangeFileOpenDirectory "C:/Documents and Settings/User/桌面/"
Set TestDoc = Word.Documents.Open(FileName:="test.doc", Visible:=True)
Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
With MyDialog
.Filters.Clear '清除所有文件筛选器中的项目
.Filters.Add "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件
.AllowMultiSelect = True '允许多项选择
If .Show <> -1 Then Exit Sub
For Each oDoc In .SelectedItems '在所有选取项目中循环
NewName = ""
'以隐藏方式打开Word文档
Set myDoc = Word.Documents.Open(FileName:=oDoc, Visible:=True)
Selection.WholeStory
Selection.Copy
Windows(TestDoc).Activate
Selection.PasteAndFormat (wdPasteDefault)
Selection.TypeText Text:="×××××××××××××××××××××××××××××××××××××××"
ActiveDocument.Save
' Set myRange = myDoc.Paragraphs.First.Range '取得第1个段落区域
' OldName = Application.CleanString(myRange.Text) '清除非打印字符
myDoc.Close False '关闭文档
Next
End With
End Sub
本文介绍了一种使用VBA脚本批量合并多个Word文档的方法。通过创建文件选择对话框让用户挑选需要合并的文件,并将选定的文件内容逐一复制粘贴到一个主文档中,实现了快速整合多份Word文件的功能。
3763

被折叠的 条评论
为什么被折叠?



