Использование VBA для разбора текста в документе MS Word - PullRequest
4 голосов
/ 16 апреля 2009

Я надеялся, что кто-нибудь сможет помочь с макросом MS Word.

По сути, у меня есть документ MS Word, в котором перечислены несколько текстовых файлов и конкретные страницы, представляющие интерес для каждого файла.

Формат файла похож на:

textdocument1.txt              P. 6, 12 - issue1
textdocument2.txt              P. 5 - issue1
                               P. 13, 17 - issue3
textdocument3.txt              P. 10

Я хочу прочитать каждую строку в моем макросе как строку.

Затем просмотрите его, чтобы определить имя файла. С помощью имени файла я могу открыть файл, перейти к номеру страницы и скопировать нужные мне данные.

Но я застрял на шаге 1, как мне записать строку в строку в макросе MS Word?

Любая помощь будет оценена.

Ответы [ 3 ]

4 голосов
/ 16 апреля 2009

Следующий код должен помочь вам начать:

Public Sub ParseLines()
    Dim singleLine As Paragraph
    Dim lineText As String

    For Each singleLine In ActiveDocument.Paragraphs
        lineText = singleLine.Range.Text

        '// parse the text here...

    Next singleLine
End Sub

Я нашел основной алгоритм в этой статье .

3 голосов
/ 16 апреля 2009

Если в вашем текстовом документе перечислены все текстовые файлы, подобные этому:

<name>{tab}<page ref>{newline}
<name>{tab}<page ref>{newline}
<name>{tab}<page ref>{newline}

Тогда все строки доступны в коллекции Paragraphs . Вы можете пройти через это с помощью простого цикла For Each:

Dim p As Paragraph

For Each p In ActiveDocument.Paragraphs
  Debug.Print p.Range.Text
Next p
2 голосов
/ 23 августа 2010

за линию

Public Sub ParseDoc()

    Dim doc As Document
    Set doc = ActiveDocument
    Dim paras As Paragraphs
    Set paras = doc.Paragraphs
    Dim para As Paragraph
    Dim sents As Sentences
    Dim sent As Range
    For Each para In paras

        Set sents = para.Range.Sentences
        For Each sent In sents
            Debug.Print sent.Text
        Next

    Next

End Sub
...