Объединение Rich Text Content Control Content в MS Word с использованием VBA - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь создать форму для нетехнического пользователя в MS Word для захвата некоторого текстового содержимого в MS Word. Это слово do c состоит из нескольких элементов управления содержимым расширенного текста, в которые пользователь вводит или вставляет некоторые отформатированные данные (полужирный, подчеркнутый, ссылки, ...).

Как только они получат весь контент, введенный в эти различные элементы управления контентом, я попытаюсь упростить их объединение в единый порядок вставки в некоторые заметки подкаст-шоу, которые находятся в HTML сформироваться.

Итак, я хочу взять три элемента управления содержимым форматированного текста, в которых отформатированы данные, объединить их в один отформатированный фрагмент содержимого и затем скопировать его в буфер обмена, чтобы затем они могли go эту веб-форму, вставьте ее и сделайте небольшую очистку. Проблема в том, что всякий раз, когда я пытаюсь объединить содержимое RTF, оно теряет форматирование.

Единственный способ сохранить форматирование - это скопировать объект диапазона, а затем вставить его. Однако, это не вставляет только отформатированный текст. Он вставляет весь текстовый контроль содержимого.

Я пытался создать пустое поле RTF в нижней части Word, сделайте c, чтобы объединить все, но я просто не могу понять это. Я не думаю, что это будет ракетостроение.

Поскольку ни один из пробованных мной кодов не работает и сохраняет форматирование, я не уверен, что его публикация принесет пользу. Вот как я получение значения текстового объекта:

ActiveDocument.SelectContentControlsByTitle("txtShowNotes").Item(1).Range.Text

пробовал это:

ActiveDocument.SelectContentControlsByTitle("txtShowNotes").Item(1).Range.Copy
ActiveDocument.SelectContentControlsByTitle("txtCombinedContentSection").Item(1).Range.Paste

, но это копирует весь RTF, а не только текст.

1 Ответ

0 голосов
/ 06 марта 2020

Попробуйте что-нибудь на основе:

Sub Demo()
Dim Rng As Range
With ActiveDocument
  Set Rng = .SelectContentControlsByTitle("txtCombinedContentSection").Item(1).Range
  Rng.FormattedText = _
    .SelectContentControlsByTitle("txtShowNotes").Item(1).Range.FormattedText
  Rng.InsertAfter vbCr & vbCr
  Rng.Characters.Last.FormattedText = _
    .SelectContentControlsByTitle("txtShowNotes").Item(2).Range.FormattedText
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...