Vba 无法在Word文档中使用Visual Basic获取列表框
总的来说,我的目标是在文档上有一个包含数据库类型的框,当有人选择该数据库类型时,文档将隐藏/显示某些部分 我现在的问题是,我似乎无法抓住我创建的列表框ContentControl 我有一个带有标记boxDB的listbox ContentControl 目前这是我能得到的全部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 我用
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
谢谢。我发誓我试过一些,但我一定错过了一步。这正是我需要的,我想我现在可以做更多的事情。我非常感谢你的帮助!