#ms-word #formatting #copy-paste
#ms-word #форматирование #копировать-вставить
Вопрос:
В этом коде у меня проблема в том, что он копирует текст, но принимает формат из нового документа, а не из предыдущего. Как я могу изменить то, что он принимает полный формат из предыдущего документа? (Сохраняйте форматирование исходного кода K)
Private Sub CommandButton_Click()
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect Password:="LGRS"
End If
Dim newDoc As Document
Dim src As Range
Dim pages As Range
'set src range to start at page 2
Set src = ActiveDocument.GoTo(what:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2)
'extend range to the end of page 7
Set pages = ActiveDocument.GoTo(what:=wdGoToPage, Which:=wdGoToAbsolute, Count:=7)
src.End = pages.GoTo(what:=wdGoToBookmark, Name:="page").End
Set newDoc = Documents.Add(, wdNewBlankDocument)
newDoc.Content.FormattedText = src.FormattedText
'remove extra paragraph at end
With newDoc.Paragraphs.Last.Range
If Len(.Text) = 1 Then .Delete
End With
newDoc.Paragraphs.Last.Range.Delete
newDoc.Save
Application.ActiveDocument.Protect wdAllowOnlyRevisions, Password:="LGRS"
End Sub
Комментарии:
1. Вы используете метод FormattedText, который копирует форматирование символов и текст из указанного диапазона src. Форматирование абзаца включено для любых меток абзаца в диапазоне ‘src’. Если вы не получаете желаемого форматирования, это должно повлиять только на последний абзац — если вы не включили его разрыв абзаца (например, потому, что абзац заканчивается на следующей странице). Форматирование на уровне разделов (например, настройка страницы, верхние и нижние колонтитулы) реплицируется только в том случае, если вы копируете соответствующие разрывы разделов.
2. Мой опыт работы с «сохранить форматирование исходного кода» заключается в том, что он копирует форматирование на уровне символов, но не форматирование стиля абзаца для уже используемых стилей. Для уже используемых стилей, даже если форматирование выполняется в стиле абзаца в исходном документе, вы получаете целевую копию в обычном стиле с прямым форматированием в соответствии с исходным.
3. Итак, есть ли способ решить проблему с этим кодом или мне нужно работать с другим?