Дублируйте текст и скройте оригинал - PullRequest
0 голосов
/ 06 февраля 2020

Я использую этот макрос, вручную выбирая текст, который хочу дублировать (в MS Word).

testoin = Selection.Text

testout = testoin & Chr(13) & testoin

Selection.Text = testout

Я пытался заставить VBA скрыть (скрыть шрифт) «оригинал» часть текста (т. е. тестоин до Chr(13) с использованием MoveEnd MoveLeft et c. безрезультатно. Не могли бы вы помочь?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Я нашел способ заставить его делать то, что мне нужно, повторно используя ваш код:

Sub duplicator3()
'
' duplicator3 Macro
'
    Dim Range1 As Range, Range2 As Range
    Set myRange1 = Selection.Range.Duplicate  
    Set myRange2 = Selection.Range.Duplicate
    Selection.InsertParagraphAfter
    ' Duplicate the text using the duplicate range
    Selection.InsertAfter Text:=myRange1.Text
    ' Apply hidden text  to the original text.

    myRange1.Font.Hidden = True

    Selection.InsertAfter Text:=myRange2.Text

End Sub

Спасибо!

0 голосов
/ 06 февраля 2020

При изменении текста в документе Word лучше всего работать в Word, а не извлекать текст в VBA и затем возвращать его обратно.

Dim myRange As Word.Range
    ' Make a copy of the range  in a new range object
    ' If we don't use duplicate then myRange will be the same range object as Select
    ' so that any changes in the Selection range will be reflected in myRange.
    Set myRange = Selection.Range.Duplicate
    ' Insert Chr(13)
    Selection.InsertParagraphAfter
    ' Duplicate the text using the duplicate range
    Selection.InsertAfter text:=myRange.text
    ' Apply hidden text  to the original text.
    myRange.Font.Hidden = True

Если скрытый текст не исчезнет из поля зрения, это произойдет из-за Word настроен на отображение форматирования (значок Показать / Скрыть на вкладке абзаца на ленте)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...