vba - 无法在 Word 文档中使用 Visual Basic 抓取列表框
问题描述
我的总体目标是在包含数据库类型的文档上有一个框,当有人选择该数据库类型时,文档将隐藏/显示某些部分。
那么我现在的问题是我似乎无法获取我创建的列表框 ContentControl。
我有一个带有标签 boxDB 的列表框 ContentControl。
目前这就是我能得到的全部
Sub ListBox_AfterUpdate()
Dim box
Set box = ActiveDocument.SelectContentControlsByTag("boxDB")
End Sub
我已经用盒子尝试了几件事来尝试让它有数据。我的第一个假设是,因为它是一个集合,所以我会通过使用项目的第一个索引找到第一个项目..但它总是说该索引处没有项目。
我应该使用另一种方法来获取设置的值吗?
解决方案
要按标签访问控件及其功能,请阅读. SelectContentControlsByTag
这表明返回的对象是与标记匹配的控件的集合,因此很明显,您可能有多个具有相同标记字符串的控件。
通过始终Option Explicit
在所有代码中使用并专门用类型声明每个变量,您将获得很大帮助。这样,您可以使用 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
推荐阅读
- microsoft-graph-api - RE:Graph API 中 $search 的 275 条记录限制
- python - numpy 只有 size-1 的数组可以转换为 Python 标量
- javascript - 如何强制 youtube 链接在浏览器中而不是在应用程序中打开?
- spring - 使用 Spring WebClient 时如何捕获 IOException?
- c++ - 即使有标题,在另一个类中也无法识别类
- python-3.x - 关于使用 OOP python 的卡片组的问题
- mongodb - MongoDB反向键值
- php - PHP 从请求的 URL 获取响应
- java - 无法使用ChainedKafkaTransaction 同步 Kafka 和 MQ 事务
- python - 定义数据框列的函数