2009-04-16 123 views
4

我希望有人可以幫助使用MS Word宏。使用VBA解析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宏中的字符串行?

任何幫助將不勝感激。

回答

4

下面的代碼應該讓你開始:

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 

我發現基本算法this article

+0

這將打破文件分成段落。 如果你想讓句子按照每行(即句子)檢查下面的答案。 – 2010-08-23 01:57:46

3

如果您的Word文檔中列出了所有的文本文件是這樣的:

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

然後所有的線路都在Paragraphs collection可用。您可以循環通過一個簡單的For Each循環:

Dim p As Paragraph 

For Each p In ActiveDocument.Paragraphs 
    Debug.Print p.Range.Text 
Next p 
2

每行

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