从用户的选择中获取选定的word文档,并将这些文档合并为一个doc文件

时间:2015-07-26 05:18:14

标签: vba merge word-vba

我们有15个word docx文件存储在c:\ docs文件夹中,名为“a1.docx,a2.docx,a3.docx ... a15.dox”我创建了一个word文件到通过显示的15个复选框(带文件名)获取用户的选择。

我已将每个复选框的书签命名为“a1,a2,a3 ... a15”。用户可以通过勾选支票从显示的文档列表中选择任意2个或更多文档框。

在当前文档中,有人可以帮助宏<合并 仅选定文档吗?

搜索网络,获取示例vba代码以将特定文件夹中的所有文档合并为单个文件。

我想只合并列表中的选定文件。

这是我用来获取用户反馈并将所选文档逐一合并到当前文档位置的代码:

Private Sub CommandButton1_Click()
Const strPath As String = "C:\Docs\"
If CheckBox1.Value = True Then
    Selection.InsertBreak
    Selection.InsertFile FileName:=strPath & "a1.docx", Range:="", ConfirmConversions:= _
    False, Link:=False, Attachment:=False
End If
If CheckBox2.Value = True Then
   Selection.InsertBreak
   Selection.InsertFile FileName:=strPath & "a2.docx", Range:="", ConfirmConversions:= _
   False, Link:=False, Attachment:=False
End If
Me.Hide

End Sub

1 个答案:

答案 0 :(得分:0)

如果您希望在当前打开的文件或新文件中包含所选内容,我不是100%清楚,但在任何一种情况下,原则上都是如此。我已经做了类似的事情,将内容插入到源文件中的模板中,每个文件都被打开,内容被复制然后粘贴到新文件中。

对于每个复选框,您需要执行以下操作:

Documents.Open(FilePath & CheckboxName & ".docx").Activate
    ActiveDocument.Range.Select 
    Selection.Copy                                   'selects all and copies
'Activate the file you want to paste it into     
    Documents(FilePath & FileName).Activate
    Selection.Paste
    Selection.InsertBreak
'close the original document    
    Documents(FilePath & CheckboxName & ".docx").Close (wdDoNotSaveChanges)