如何用vba获取word文档中表格的标题段落文字?

一篇word文档经常会有很多表格,每个表格一般都会有标题。

标题或者是在表格的第一行或者是独立于表格之外位于表格之上的一个段落行。

如下图所示

word 表格标题

可以使用如下的代码获得表格的标题内容:

Sub QQ1722187970()
    Const wdParagraph = 4
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oT As Table
    Dim oRng As Range
    With oDoc
        For Each oT In .Tables
            Set oRng = .Range(oT.Range.Start - 2, oT.Range.Start - 1)
            '将oRng对象按照整个段落选中,oRng对象自动变为整个段落的Range对象
            oRng.Expand wdParagraph
            '读取标题的文本内容
            MsgBox oRng.Text
        Next
    End With
End Sub

实现的关键点在于用Range对象的Expand方法,它可以将原来的Range对象按照词、句、或者段落扩展选中,然后自动更新Range对象为选中后的Range对象。

在本例中先将oRng对象赋值为表格以上的第一个文字所代表的Range对象,然后按照段落扩展为整行Range对象。

       

发表评论