Обновите закладки Word отформатированными данными Excel из Excel - PullRequest
1 голос
/ 18 июня 2019

Следующий код предназначен для обновления закладок Word отформатированными данными из Excel, однако форматирование не встречается и не знаю, почему, буду признателен за любые предложения. Отформатированные данные - текст с некоторыми подчеркнутыми работами.

Set wb = ActiveWorkbook
TodayDate = Format(Date, "mmmm d, yyyy")
Path = wb.Path & "\update_file.docx"

 'Create a new Word Session
Set pappWord = CreateObject("Word.Application")

 'Open document in word
Set docWord = pappWord.Documents.Add(Path)

 'Loop through names in the activeworkbook
For Each xlName In wb.Names
     'if xlName's name is existing in document then put the value in place of the bookmark
    If docWord.Bookmarks.Exists(xlName.Name) Then
    docWord.Bookmarks(xlName.Name).Range.Text = Range(xlName).Text  
    End If
Next xlName

1 Ответ

0 голосов
/ 18 июня 2019

Попробуйте вместо этого, используя Copy и (плохо документированный) метод ExecuteMso.Вам нужно использовать Copy для диапазона (для захвата форматирования), а затем вы можете эффективно сделать то же самое, что щелкнуть правой кнопкой мыши Вставить + Сохранить исходное форматирование параметр:

enter image description here

If docWord.Bookmarks.Exists(xlName.Name) Then
    xlName.RefersToRange.Copy
    docWord.Bookmarks(xlName.Name).Select
    docWord.Application.CommandBars.ExecuteMso "PasteSourceFormatting"
End If

В качестве альтернативы, и это может быть лучше, поскольку ExecuteMso является асинхронным и может привести к проблемам синхронизации:

xlName.RefersToRange.Copy
docWord.Bookmarks(xlName.Name).Range.PasteAndFormat 16 'wdFormatOriginalFormatting

enter image description here

...