2009-04-16 98 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