Как я могу скрыть символы в Microsoft Word, используя VBA? - PullRequest
1 голос
/ 08 июля 2019

Я хотел бы скрыть символы в Microsoft Word, а точнее скрыть текст между некоторыми символами.

Например, если я получил это:

::00-58-96:: Hello there
::00-58-97:: This is a test
::00-58-98:: Nothing else
::00-58-99:: Good bye !

Я хотел бы скрыть текст между

::        ::

И результат будет

Hello there
This is a test
Nothing else
Good bye !

Другим примером будет

==this:example== Again this
==this:example== Is a
==this:example== Test

И результат будет

Again this
Is a
Test

Я не знаю, правильно ли я раскрыл свою проблему.

Я уже пытался сделать это (некоторые другие люди помогают мне), но это заменит текст, а не скрывает его:

Sub l()
'
'
'
    ActiveDocument.Range.Select '

With Selection.Find
     .MatchWildcards = True
     .Text = "::*::"
     .Replacement.Text = ""
     .Execute Replace:=wdReplaceAll, Forward:=True, _
     Wrap:=wdFindContinue
End With


End Sub


UPDATE:

Word все еще не работает / просто скрыл первую строку моего документа, я изменил только одну строку следующим образом:

Private Sub SelFind()


    Dim Rng As Range
    Dim Fnd As Boolean

G:
    Set Rng = ActiveDocument.Range


    With Rng.Find
        .ClearFormatting
        .MatchWildcards = True
        .Execute FindText:=";;*;;*;;", Forward:=True, _
                 Format:=False, Wrap:=wdFindStop
        Fnd = .Found
    End With

    If Fnd = True Then
        With Rng
            .MoveStart wdWord, 0
            .Select
            With .Font
                .Hidden = True
            End With
        End With
        GoTo G

    Else:

    MsgBox "All done"

    End If
End Sub

1 Ответ

1 голос
/ 08 июля 2019

Попробуйте это:

Private Sub SelFind()


    Dim Rng As Range
    Dim Fnd As Boolean

G:
    Set Rng = ActiveDocument.Range


    With Rng.Find
        .ClearFormatting
        .MatchWildcards = True
        .Execute FindText:="::*::", Forward:=True, _
                 Format:=False, Wrap:=wdFindStop
        Fnd = .Found
    End With

    If Fnd = True Then
        With Rng
            .MoveStart wdWord, 0
            .Select
            With .Font
                .Hidden = True
            End With
        End With
        GoTo G

    Else:

    MsgBox "All done"

    End If
End Sub

Получил помощь от этого Ответ

...