2015-07-26 3 views
1

У нас есть 15 файлов слова docx, хранящихся в папке c: \ docs с именем «a1.docx, a2.docx, a3.docx ... a15 .dox " Я создал файл слов, чтобы получить выбор пользователя через 15 флажков (с именем файла).Получить выбранные документы Word по выбору пользователя и объединить эти документы в виде одного документа doc

Я назвал закладку каждого флажка как «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 
+2

Пожалуйста, пост код у вас есть. –

+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) 
Смежные вопросы