Word VBA — Копия изображения-заголовок в новом документе

#vba #ms-word #header #ms-office #bookmarks

Вопрос:

У меня есть функция, которая копирует указанную таблицу в новый документ, но я не могу понять, как экспортировать заголовок, представляющий собой изображение, и установить его в качестве заголовка для страниц документа.

Таблица выбирается на основе фактического значения выпадающего списка (ProjectsList.Value), которое ссылается на закладку, и содержащаяся в ней таблица успешно копируется и вставляется в новый документ

Для каждой вставленной страницы я тоже хочу скопировать заголовок.

моя функция, в которую я бы интегрировал часть заголовка:

 Sub CopyPaste()
Dim Source As Document
Dim Target As Document
Dim tbl As Table
Dim tr As Range
Dim hRange As Word.Range

Set Source = ActiveDocument
Set Target = Documents.Add
Target.SaveAs FileName:=ProjectsList.Value

For Each tbl In Source.Bookmarks(ProjectsList.Value).Range.Tables
    Set tr = Target.Range
    tr.Collapse wdCollapseEnd
    tr.FormattedText = tbl.Range.FormattedText
    tr.Collapse wdCollapseEnd
    tr.Text = vbCrLf
Next

End Sub
 

Ответ №1:

Например:

 Sub Replicate()
Application.ScreenUpdating = False
Dim Source As Document, Target As Document
Dim Tbl As Table, HdFt As HeaderFooter, Rng As Range
Set Source = ActiveDocument: Set Target = Documents.Add
With Target
    For Each Tbl In Source.Bookmarks(ProjectsList.Value).Range.Tables
        Set Rng = .Range.Characters.Last
        Rng.FormattedText = Tbl.Range.FormattedText
        Rng.InsertAfter vbCr
    Next
    For Each HdFt In Source.Sections.First.Headers
        With HdFt
            Set Rng = Target.Sections.First.Headers(.Index).Range
            Rng.FormattedText = .Range.FormattedText
            Rng.Characters.Last.Delete
        End With
    Next
    .SaveAs FileName:=ProjectsList.Value
End With
Application.ScreenUpdating = True
End Sub