Vba 无法在Word文档中使用Visual Basic获取列表框

Vba 无法在Word文档中使用Visual Basic获取列表框,vba,ms-word,Vba,Ms Word,总的来说,我的目标是在文档上有一个包含数据库类型的框,当有人选择该数据库类型时,文档将隐藏/显示某些部分 我现在的问题是,我似乎无法抓住我创建的列表框ContentControl 我有一个带有标记boxDB的listbox ContentControl 目前这是我能得到的全部 Sub ListBox_AfterUpdate() Dim box Set box = ActiveDocument.SelectContentControlsByTag("boxDB") End Sub 我用

总的来说,我的目标是在文档上有一个包含数据库类型的框,当有人选择该数据库类型时,文档将隐藏/显示某些部分

我现在的问题是,我似乎无法抓住我创建的列表框ContentControl

我有一个带有标记boxDB的listbox ContentControl

目前这是我能得到的全部

Sub ListBox_AfterUpdate()

 Dim box
 Set box = ActiveDocument.SelectContentControlsByTag("boxDB")


End Sub
我用box尝试了几种方法,试图让它有数据。我的第一个假设是,由于它是一个集合,我只需使用项目的第一个索引来查找第一个项目..但它总是说在该索引处没有项目


是否应该使用其他方法获取设置的值?

要通过标记访问控件及其功能,请阅读。这表明返回的对象是与标记匹配的控件的集合,因此很明显,您可能有多个控件具有相同的标记字符串

通过在所有代码中使用一个类型来声明每个变量,您将获得很大的帮助。这样,您就可以使用VBA编辑器的Intellisense功能来显示在编写代码时可用的方法和属性

假设您的
ContentControl
已使用标记建立(并且您只有一个带有该标记的控件)

Option Explicit

Sub SetupListbox()
    Dim theControls As ContentControls
    Dim box As ContentControl
    Set theControls = ThisDocument.SelectContentControlsByTag("boxDB")
    Set box = theControls.Item(1)
    box.DropdownListEntries.Add "Red"
    box.DropdownListEntries.Add "Green"
    box.DropdownListEntries.Add "Blue"
    box.DropdownListEntries.Add "Yellow"
    box.DropdownListEntries.Add "Orange"
End Sub

Sub GetSelectedItem()
    Dim theControls As ContentControls
    Dim box As ContentControl
    Set theControls = ThisDocument.SelectContentControlsByTag("boxDB")
    Set box = theControls.Item(1)
    Debug.Print box.Range.Text
End Sub

谢谢。我发誓我试过一些,但我一定错过了一步。这正是我需要的,我想我现在可以做更多的事情。我非常感谢你的帮助!