Bootstrap

快速遍历包含合并单元格的Word表格

Word中的合并表格如下,现在需要根据子类(例如:果汁)查找对应的品类,如果这是Excel表格,那么即使包含合并单元格,也很容易处理,但是使用Word VBA进行查找,就需要一些技巧。

在这里插入图片描述

示例代码如下:

Sub Demo()
    Dim oTab As Table, oCell As Cell
    Dim Cat1 As String, Cat2 As String
    Const TARGET = "果汁"
    Set oTab = ThisDocument.Tables(1)
    For Each oCell In oTab.Range.Cells
        If oCell.ColumnIndex = 2 Then
            Cat2 = Left(oCell.Range.Text, Len(oCell.Range.Text) - 2)
            If Cat2 = TARGET Then
                oCell.Select
                Selection.MoveLeft wdCell
                Cat1 = Selection
                Debug.Print Cat1 & vbTab & Cat2
                Exit For
            End If
        End If
    Next
End Sub

【代码解析】
第4行代码定义要查找的子类名称。
第5行代码获取文档中的第一个表格对象。
第6~16行代码循环遍历表格单元格。
第7行代码判断单元格的列号。
第8行代码读取第二列单元格的值,使用Left去除单元格的结束标志字符。
第9行代码判断是否为待查找的子类。
第10行代码选中第二列单元格。
第11行代码向左移动一个单元格,此时将选中对应的第一列单元格。
第12行代码读取类目名称。
第13行代码输出结果。
第14行代码结束For循环。

输出结果如下所示:

饮料 果汁

;