用于检查Word中的表中的单元格的VBA事件处理程序

时间:2017-05-31 12:32:22

标签: vba ms-word event-handling

我在Word中有一张桌子: Table Example✓✓

表格在文档中加了书签,因为它可以出现在文档的不同位置。我使用这样的书签访问表格:

设置Tbl = ActiveDocument.Bookmarks("书签名称")。Range.Tables(1)

我有一个脚本,用于检查单元格是否有复选标记,并在具有复选标记时显示Msgbox,并且不应该根据行和列名称的某些条件显示。

以下是问题:

我希望通过Cell_OnLeave类型的事件触发此脚本,以便当用户离开单元格时,脚本将运行。这可能吗?

如果这不可能,我想在用户离开表时触发脚本,脚本可以检查整个表吗?也许bookmark_deselected事件适用于此?怎么可以这样做?

谢谢!

2 个答案:

答案 0 :(得分:1)

可以在 Word 中为表格单元格创建自定义事件。 由于代码很长,我将只链接到一个 example document 和一个 GitHub gist


我尝试尽可能多地注释代码以使其易于理解。

该模块为表格单元格创建进入、更改和退出事件,并创建一个事件管理器来定义每个事件的行为。

如果您不想阅读所有内容,请通过修改 CellEventManager 子例程来使用该模块。
sub 接收事件类型和触发事件的单元格,因此您可以根据自己的喜好正确定义事件响应。

我还为 OnExit 事件实现了取消功能:在处理 OnExit 事件期间设置 CellEventManager = Fail 以防止选择离开单元格。

答案 1 :(得分:0)

只能在Word中处理内置事件。表或书签没有特定事件。唯一让你在任何地方接近的事件是WindowSelectionChange事件,每次更改选择时都会触发,即每次移动插入点时都会触发。