2015-11-19 2 views
0

Я работаю над проектом vba. Требование состоит в том, чтобы объединить несколько документов документа Word в один документ слова. Это нужно делать с помощью тегов ContentControl. Я уже создал двухсловный документ, имеющий уникальный идентификатор тега управления содержимым. Теперь мне нужно построить логику для слияния их содержимого в одно.Объединение всех элементов управления содержимым из нескольких файлов в один

Set WordDoc = WordApp.Documents.Open(FileName) 

    With WordApp.ActiveDocument 
      For i = 1 To .ContentControls.Count 
       Select Case .ContentControls(i).Tag 
        Case "cc1": strEnding = "st" -- word content including format and style 
        Case "cc2": strEnding = "nd" 
        Case "cc3": strEnding = "rd" 
        Case Else: strEnding = "th" 
       End Select 
      Next 
     End With 

Теперь я хочу, чтобы объединить все данные (включая формат и стиль также, если есть таблица) в один документ.

Пожалуйста, предложите мне, как я могу достичь этого.

+0

Из интереса: почему используется ms-доступ? –

ответ

0

В общем случае он должен работать с использованием Range.FormattedText для обеих сторон уравнения. Получите целевой диапазон в одном документе и назначьте ему FormattedText отдельного диапазона управления содержимым.

1
Sub Foo() 
Dim i As Long 
Dim MyName As String, MyPath As String 
Application.ScreenUpdating = False 
Documents.Add 

MyPath = "C:\your_path_here\" ' <= change this as necessary 

MyName = Dir$(MyPath & "*.doc") ' not *.* if you just want doc files 

Do While MyName <> "" 
If InStr(MyName, "~") = 0 Then 
Selection.InsertFile _ 
FileName:="""" & MyPath & MyName & """", _ 
ConfirmConversions:=False, Link:=False, _ 
Attachment:=False 
Selection.InsertBreak Type:=wdPageBreak 
End If 

MyName = Dir ' gets the next doc file in the directory 
Loop 

End Sub 
Смежные вопросы