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


我总体上

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

好吧,我现在的问题是我似乎无法抓住我创建的列表框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

最新更新