突出显示已跟踪更改的Word 2010中的表格单元格

时间:2015-07-31 17:03:26

标签: ms-word word-vba

我希望突出显示跟踪更改的表格单元格。

这是我的VBA代码:

Sub HiliteChanges()

Dim oTable As Table
Dim oColumn As Column
Dim oCell As Cell
Dim oRange As Range
Dim numRevs As Integer
Dim tableIndex, rowIndex, cellIndex As Integer

For tableIndex = 1 To ActiveDocument.Tables.Count
    For rowIndex = 1 To ActiveDocument.Tables(tableIndex).Rows.Count
        For cellIndex = 1 To ActiveDocument.Tables(tableIndex).Rows(rowIndex).Cells.Count
            numRevs = ActiveDocument.Tables(tableIndex).Rows(rowIndex).Cells(cellIndex).Range.Revisions.Count
            Debug.Print tableIndex, rowIndex, cellIndex, numRevs
            If numRevs > 0 Then
                ActiveDocument.Tables(tableIndex).Rows(rowIndex).Cells(cellIndex).Shading.BackgroundPatternColor = wdColorBlueGray
            End If
        Next
    Next
Next

End Sub

它最终做的是突出整行,即使一行中只有一个单元格被更改。

我在一个包含3行和6列的表中进行了更改。这一变化发生在第一行的第四列。我在运行脚本之前关闭了Track Changes。这是输出:

1             1             1             1 
1             1             2             1 
1             1             3             1 
1             1             4             1 
1             1             5             1 
1             1             6             1 
1             2             1             0 
1             2             2             0 
1             2             3             0 
1             2             4             0 
1             2             5             0 
1             2             6             0 
1             3             1             0 
1             3             2             0 
1             3             3             0 
1             3             4             0 
1             3             5             0 
1             3             6             0 

所以看起来第一行中的每个单元格都有变化,但它并没有。只有一个细胞有变化。

有没有办法只突出有变化的细胞? (显然我的方式在某种程度上存在缺陷,但我无法看到。)

1 个答案:

答案 0 :(得分:1)

检查修订时,请勿在选中的范围内包含“单元格结束”标记。不要问我为什么这样有用......

body