在组合框和列表框上为 ListFillRange 使用表格列

Posted

技术标签:

【中文标题】在组合框和列表框上为 ListFillRange 使用表格列【英文标题】:Use table column for ListFillRange on Combo and List Boxes 【发布时间】:2018-09-18 09:47:15 【问题描述】:

我一直试图让 ComboBox 使用表格的第一列作为其范围输入,但它似乎什么都不做。

例如

sheet1.ComboBox1.ListFillRange = "table1"
sheet1.ComboBox1.ListFillRange = "table1[Column 1]"

两者都不起作用。即使使用表单组合框而不是 activeX 组合框并将 'table1' 或 'table1[Column 1]' 作为输入范围。我还尝试在字符串的开头添加一个“=”(“=table1”等)。

然后我决定命名表格范围,因为其他命名范围在使用 .ListFillRange 时起作用:

sheet1.ComboBox1.ListFillRange = "RangeName"

这也不起作用(我假设是因为命名范围只是对我最初尝试的同一事物的引用)。

所以我只需要制作一个普通公式来找到第一列所在的范围还是我遗漏了什么? (这似乎真的应该是一个功能,因为它是如此简单,但我想没有什么比我们想要的那么简单了)

【问题讨论】:

【参考方案1】:
sheet1.ComboBox1.ListFillRange = Range(“table1”).Columns(1).Address

【讨论】:

【参考方案2】:

这里使用Combobox的.List方法来填充。

首先,您要为表中的第 1 列设置范围,然后使用范围的 .Value 属性来完成您要查找的内容:

Dim rng As Range
Set rng = Sheet1.ListObjects("Table1").ListColumns(1).Range

Sheet1.ComboBox1.List = rng.Value

这将填充您的组合框。

【讨论】:

以上是关于在组合框和列表框上为 ListFillRange 使用表格列的主要内容,如果未能解决你的问题,请参考以下文章

如何同步组合框和文本字段值。即如何从存储在文本字段中加载不同的值,而我正在更改组合框上的值

如何确定在 Access VBA 中键入组合框和从下拉列表中选择之间的区别?

如何为组合框和列表中的选项添加标签?

组合框和列表框不显示文本文件的内容

WPF Master-Details 视图与列表框和组合框与绑定

访问 2007 组合框上的选定值未显示在多个记录上