如何用vba遍历word表格中的嵌套表格?

在word中表格里面还可以插入表格。

凡是表格里面又有表格的,就可以称为嵌套表格。

在word vba 中Table对象的NestingLevel属性可以返回表格所在的嵌套层级,最外层的表格为1,往里依次增加。

由于嵌套的层级数未知,所以要用递归来遍历所有word的嵌套表格,代码如下:

Sub exceloffice()
    '作者QQ:1722187970,微信:xycgenius,微信公众号exceloffice
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oT1 As Table
    Dim oT2 As Table
    With oDoc
        '遍历第一层表格
        For Each oT1 In .Tables
            If oT1.Tables.Count > 0 Then
               Debug.Print oT1.Cell(1, 1).Range.Text, oT1.NestingLevel
               '遍历下一级表格
               For Each oT2 In oT1.Tables
                    Call xyf(oT2)
               Next
            Else
               Debug.Print oT1.Cell(1, 1).Range.Text, oT1.NestingLevel
            End If
        Next
    End With
End Sub
Sub xyf(oT As Table)
    Dim oT1 As Table
    If oT.Tables.Count > 0 Then
         Debug.Print oT.Cell(1, 1).Range.Text, oT.NestingLevel
        '遍历下一级表格
        For Each oT1 In oT.Tables
            Call xyf(oT1)
        Next
    Else
        Debug.Print oT.Cell(1, 1).Range.Text, oT.NestingLevel
    End If
End Sub
       

发表评论