Word中表的事件更改

时间:2017-04-18 10:43:31

标签: vba ms-word word-vba

Private Sub Document_Change(ByVal Target As Range)
Set table = ActiveDocument.Tables(1)
If Not Intersect(table, Target) Is Nothing Then
Target.AutoFormat ApplyColor: Red
End If
End Sub

我有以下代码,但它似乎不适用于VBA Word。 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

我认为您从Excel VBA复制了代码并尝试重建它。 Excel和Word VBA之间存在一些差异。

    在Word VBA中不存在
  1. Intersect
  2. Word中的
  3. DocumentChange事件与您期望的不同 - 它在创建新文档,打开现有文档或将其他文档设置为活动文档时发生。 (https://msdn.microsoft.com/en-us/library/office/ff822189.aspx
  4. 如果您想以红色进行更改,可以执行以下操作:

    1. 将整个文档记录在一个静态字符串中。
    2. 当有更改时 - 再次在新字符串中记录。
    3. 比较字符串并为差异着色。
    4. 然而,这有点难度,因为单词没有Change事件,正如我们期望的那样(例如在Excel中)。因此,您应该自动运行几次VBA代码。