的目标是在包含数据库类型的文档上放置一个框,当有人选择该数据库类型时,文档将隐藏/显示某些部分。
好吧,我现在的问题是我似乎无法抓住我创建的列表框ContentControl。
我有一个带有标签boxDB的列表框ContentControl。
目前这就是我能得到的一切
Sub ListBox_AfterUpdate()
Dim box
Set box = ActiveDocument.SelectContentControlsByTag("boxDB")
End Sub
我已经用盒子尝试了几件事来尝试让它有数据。我的第一个假设是,由于它是一个集合,我将通过使用项目的第一个索引来找到第一项。但它总是说该索引中没有项目。
我应该使用其他方法来获取设置的值吗?
要按标记访问控件及其功能,请阅读 SelectContentControlsByTag
的参考文档。这表明返回的对象是与标记匹配的控件的集合,因此显然您可能有多个具有相同标记字符串的控件。
通过始终在所有代码中使用Option Explicit
并专门用类型声明每个变量,您将对自己有很大帮助。这样,您就可以使用 VBA 编辑器的智能感知功能来显示编写代码时可用的方法和属性。
假设您的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