Тема: Удалить текст параграфа, но оставить его форматирование
Вопрос, собственно, в заголовке: как удалить текст параграфа, но оставить его форматирование? Т.е., нужно сохранить интервалы
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Вопрос, собственно, в заголовке: как удалить текст параграфа, но оставить его форматирование? Т.е., нужно сохранить интервалы
Почему-то обрезался первый пост:
_____________________________
Вопрос, собственно, в заголовке: как удалить текст параграфа, но оставить его форматирование? Т.е., нужно сохранить интервалы "до" и "после", размеры шрифта, отступы и т.п. служебные характеристики, что бы после удаления так называемых меток (после очистки текста параграфа) и при последующем вводе нового текста сохранялась его позиция, размер, и все остальные параметры.
Почему-то обрезался первый пост:
_____________________________
Вопрос, собственно, в заголовке: как удалить текст параграфа, но оставить его форматирование? Т.е., нужно сохранить интервалы "до" и "после", размеры шрифта, отступы и т.п. служебные характеристики, что бы после удаления так называемых меток (после очистки текста параграфа) и при последующем вводе нового текста сохранялась его позиция, размер, и все остальные параметры.
Попробуйте присвоить пустой текст диапазону текущего абзаца, не трогая символ конца абзаца. Например (если курсор стоит в абзаце, текст в котором надо удалить) :
Sub EmptyPara()
Dim pararg As Range
Set pararg = Selection.Range.Paragraphs(1).Range
pararg.SetRange Start:=pararg.Start, End:=pararg.End - 1
pararg.Text = ""
End Sub
VNIIAEN пишет:Почему-то обрезался первый пост:
_____________________________
Вопрос, собственно, в заголовке: как удалить текст параграфа, но оставить его форматирование? Т.е., нужно сохранить интервалы "до" и "после", размеры шрифта, отступы и т.п. служебные характеристики, что бы после удаления так называемых меток (после очистки текста параграфа) и при последующем вводе нового текста сохранялась его позиция, размер, и все остальные параметры.Попробуйте присвоить пустой текст диапазону текущего абзаца, не трогая символ конца абзаца. Например (если курсор стоит в абзаце, текст в котором надо удалить) :
Sub EmptyPara() Dim pararg As Range Set pararg = Selection.Range.Paragraphs(1).Range pararg.SetRange Start:=pararg.Start, End:=pararg.End - 1 pararg.Text = "" End Sub
Благодарю за ответ. Я решил следующим образом (привожу фрагмент кода):
Function GetText(Optional ByVal txt As String = "")
With Selection.Paragraphs.First.Range
txt = .Text
Selection.CopyFormat
.Text = ""
Selection.Paragraphs.Add Range:=Selection.Paragraphs(1).Range
Selection.PasteFormat
GetText = txt
End With
End Function
VNIIAEN пишет:Почему-то обрезался первый пост:
_____________________________
Вопрос, собственно, в заголовке: как удалить текст параграфа, но оставить его форматирование? Т.е., нужно сохранить интервалы "до" и "после", размеры шрифта, отступы и т.п. служебные характеристики, что бы после удаления так называемых меток (после очистки текста параграфа) и при последующем вводе нового текста сохранялась его позиция, размер, и все остальные параметры.Попробуйте присвоить пустой текст диапазону текущего абзаца, не трогая символ конца абзаца. Например (если курсор стоит в абзаце, текст в котором надо удалить) :
Sub EmptyPara() Dim pararg As Range Set pararg = Selection.Range.Paragraphs(1).Range pararg.SetRange Start:=pararg.Start, End:=pararg.End - 1 pararg.Text = "" End Sub
Кстати, ваш вариант работает правильнее, ещё раз благодарю! Переписал свою функцию таким образом:
Function GetText()
Dim rng As Range, txt As String
Set rng = Selection.Range.Paragraphs(1).Range
txt = rng.Text
rng.SetRange Start:=rng.Start, End:=rng.End - 1
rng.Text = ""
GetText = txt
End Function
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться