Vba 更新Word表单字段

Vba 更新Word表单字段,vba,ms-word,Vba,Ms Word,我有一个词的形式,我正在工作 它有一个字段,应该从其他字段计算 在上一次迭代中,您可以单击表中的单元格并点击F9,字段将更新 此后,我添加了一些其他按钮和VBA,现在当“限制编辑”处于启用状态时,您无法再单击单元格 我尝试了一个绑定到VBA的按钮,该按钮将更新所有字段,但当您单击该按钮时,无法编辑任何字段 如何更新此字段,并且仍然能够手动更新其他字段?问题在于内容控件和ActiveX按钮并不完全兼容。另外,我从中继承表单的程序员使用基于文档中的表的简单字段计算,而不是VBA。我想出了一个更好的解

我有一个词的形式,我正在工作

它有一个字段,应该从其他字段计算

在上一次迭代中,您可以单击表中的单元格并点击F9,字段将更新

此后,我添加了一些其他按钮和VBA,现在当“限制编辑”处于启用状态时,您无法再单击单元格

我尝试了一个绑定到VBA的按钮,该按钮将更新所有字段,但当您单击该按钮时,无法编辑任何字段


如何更新此字段,并且仍然能够手动更新其他字段?

问题在于内容控件和ActiveX按钮并不完全兼容。另外,我从中继承表单的程序员使用基于文档中的表的简单字段计算,而不是VBA。我想出了一个更好的解决办法。我用了潜艇:

Private Sub Document_ContentControlOnExit(ByVal thisControl As ContentControl, Cancel As Boolean)    
End Sub
从控件执行代码onExit。当用户退出内容控件时,此函数在所有内容控件上执行。我开发的另一个工具是以下函数,它将查找具有给定标题的控件的索引:

'Function to get control index given the control title
'PARAMETER Control Title as String
'RETURN Control Index as Integer
Public Function GetControlIndex(ccTitle As String) As Integer
    'Function Variable Declaration
    Dim objCC As ContentControl

    'look at each ContentControl
    For i = 1 To ActiveDocument.ContentControls.count
        Set objCC = ActiveDocument.ContentControls.Item(i)
        With objCC
            If .Title = ccTitle Then
                GetControlIndex = i
            End If
        End With
    Next i
End Function