Vba 更改旧下拉框值后,如何更新标签?

Vba 更改旧下拉框值后,如何更新标签?,vba,ms-word,word-2010,Vba,Ms Word,Word 2010,用例: 用户将旧版下拉表单字段的值从一项更改为另一项。(事实上,他给某件事赋予了优先权,我们有低、中、高或紧急……每一种都有一个非常明确的定义。) priorityDefinitionLabel(下拉框右侧的标签)会更新,以显示所做选择的定义,让用户通过阅读定义并查看其是否适用于自己的问题来确保自己做出了正确的选择 我的问题是,我似乎不能做像这样基本的事情: Private Sub priorityDropDownBox_Changed() updatePriorityLabel() E

用例:

  • 用户将旧版下拉表单字段的值从一项更改为另一项。(事实上,他给某件事赋予了优先权,我们有低、中、高或紧急……每一种都有一个非常明确的定义。)
  • priorityDefinitionLabel(下拉框右侧的标签)会更新,以显示所做选择的定义,让用户通过阅读定义并查看其是否适用于自己的问题来确保自己做出了正确的选择
  • 我的问题是,我似乎不能做像这样基本的事情:

    Private Sub priorityDropDownBox_Changed()
        updatePriorityLabel()
    End Sub
    
    似乎我无法访问任何表单字段,如果它是VBA代码中的“遗留表单字段”。。。但是,如果我在页面上抛出ActiveX内容控件,我可以在代码中访问它

    有没有办法访问/寻址该下拉框?我的整个Word表单使用传统表单字段和下拉列表,所以我希望答案是肯定的,否则我可能需要将所有字段和下拉列表切换到ActiveX内容控件


    谢谢

    旧控件是
    选择.FormFields
    集合的成员。如果没有事件,最接近的等价物是
    EntryMacro
    ExitMacro
    属性

    Sub Macro2()
        Selection.FormFields.Add Range:=Selection.Range, Type:=wdFieldFormDropDown
        Selection.PreviousField.Select
        With Selection.FormFields(1)
            .Name = "Dropdown1"
            .EntryMacro = "Macro1"
            .ExitMacro = "Macro2"
            .Enabled = True
            .OwnHelp = False
            .HelpText = ""
            .OwnStatus = False
            .StatusText = ""
        End With
        Selection.FormFields("Dropdown1").DropDown.ListEntries.Clear
    End Sub
    
    ExitMacro
    不会在选择或更改下拉项时运行,而是在远离控件时运行

    关于这些遗留控件存在一些问题