用户离开日期字段ContentControl Word VBA时触发子例程

时间:2019-05-09 16:24:09

标签: vba ms-word

编辑:我已经为该帖子更新了更多信息。

我在Word中的标题中有一个内容控件,其中有一个日期时间选择器。当用户离开选择器的焦点(模糊)时,我正在尝试引发_ContentControlOnExit事件。

让我们假设我已经手动创建了内容控件,并且为它分配了日期选择器。我还用值git clone --bare <from-repository> cd <from-repo-dir> git push --set-upstream <to-repository> --all git push --set-upstream <to-repository> --tags 对其进行了标记。

我希望每次更改日期时,我都执行一个子例程,该例程会将文本值插入另一个标记为date的ContentControl中。我尝试了下面的代码,但没有成功。

请注意,日期ContentControl在Word文档的标题内。

enter image description here

tide-level

我记得在某处读过,每当标题中包含内容时,似乎事情就出现问题了……

有什么想法吗?

P.S: 当前使用Word 365-VBA

2 个答案:

答案 0 :(得分:1)

基于问题中过程的名称-ActiveDocment_ContentControlOnExit-看来事件处理程序不是由Word 自动生成的,因此它不在{{1}中}包含内容控件的文档的类模块。事件处理程序的名称(由VBA编辑器生成)通常为ThisDocument

内容控制事件处理程序必须位于Document_ContentControlOnExit中。从理论上讲,可以手动键入它们,但是Word并不总是能够识别手动键入的事件处理程序。因此,最好使用VBA编辑器的自动“存根”生成来获取结构:

  1. 为包含内容控件的文档打开ThisDocument模块。
  2. 在代码页窗口的左上方,从下拉列表中选择“文档”。
  3. 从右上角选择要插入的事件。

这时,VBA编辑器将为您创建“存根”-所需要做的就是执行代码。

有关内容控件位于标题中的注意:只要退出时焦点仍保留在标题中,此事件就会触发。但是,如果用户双击文档正文以退出标题,则不会触发该事件。 (至少不是在我的测试中。)如果这是一个问题,则可能需要将此字段放在文档正文中,并在标题中添加第二个链接的内容控件以反映选择。这样做有点复杂(需要文档中的“自定义XML部件”来管理链接的信息),但是您使用的Word版本应该具有设置它的工具。

答案 1 :(得分:0)

宏名称应为:

Docment_ContentControlOnExit

否:

ActiveDocment_ContentControlOnExit