Найти строку в Word и выбрать строку, включая следующее слово - PullRequest
0 голосов
/ 18 июня 2020

Я борюсь со следующей проблемой. В excel-VBA я хочу найти определенную строку и выбрать строку, а также следующее слово, чтобы передать его переменной.

Пример: строка поиска - это слово «Версия», за которым следует по номеру. Теперь я хочу выбрать оба.

Мой код:

Sub Test()

Dim Dokument As String, Versionsnummer As String
Dim oAppWD As Object, oDoc As Object

Set oAppWD = CreateObject("Word.Application")

    If Not oAppWD Is Nothing Then
        oAppWD.Visible = True

        If oAppWD.Options.AllowReadingMode = True Then 'Word nicht im Lesemodus starten bei  _ Schreibgeschützten Dokumenten
            oAppWD.Options.AllowReadingMode = False
        End If

        Dokument = "I:Dokument\test.docx"

        Set oDoc = oAppWD.Documents.Open(Dokument)
        With oDoc
            With .Range
                With .Find
                    .Forward = True
                    .ClearFormatting
                    .Text = "Version"
                    .MatchWholeWord = True
                    .MatchCase = False
                    .Wrap = wdFindContinue
                    .Execute
                End With
                If .Find.Found = True Then
                    .MoveEnd wdWord, 1
                    Versionsnummer = .Text
                End If
            End With
        End With
   End If
End Sub

Однако "Versionsnummer" выбирает что-то в моем исходном файле Excel, а не в текстовом документе. Буду рад помощи.

С уважением

Питер

1 Ответ

0 голосов
/ 19 июня 2020

Просто замените:

           If .Find.Found = True Then     
               oDoc.Range.Row.Select
               'Selection.SelectRow
               Versionsnummer = oDoc.Range.Selection                 
           End If

на:

           If .Find.Found = True Then
               .MoveEnd wdWord, 1
               Versionsnummer = .Text
           End If

Нет необходимости выбирать что-либо.

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