excel - 在Excel ComboBox中动态设置ListFillRange

标签 excel vba

我尝试做类似的事情:

 cmbMyBox.ListFillRange = "E2"

但是组合框似乎没有填充。

最佳答案

首先,要尝试从 VBA 设置列表填充范围,您需要包含“=”符号,如下所示:

combobox.ListFillRange = "=E3:E13"

而不是combobox.ListFillRange = "E3:E13",这不起作用。

您可以有一个动态命名范围,例如:

listItems: "=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))"

使用 VBA 设置 ListFillRange,如下所示:combobox.ListFillRange = "=listItems" 再次强调,使用 '=' 符号!!

此动态范围 listItems 会动态增大/缩小,具体取决于 A 列中的值。

我知道我回答得很晚,但我注意到很多人认为命名范围总是必须是固定的,而它们也可以是动态的......

你是如何做到这一点的? 在 Excel 2007 及更高版本中,您可以转到功能区选项卡“公式”并单击“名称管理器”按钮 您可以在此处管理所有定义的命名范围,而不是选择单元格并在左上角的框中为其指定名称。 创建一个新的,并为其赋予值(不带引号):

“=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))”

给你...

附注当您让动态命名范围发生变化时,您应该使用 VBA 重新设置 .ListFillRange,以便组合框将刷新其列表项。

关于excel - 在Excel ComboBox中动态设置ListFillRange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200712/

相关文章:

excel - 根据Excel中的最大值和匹配值在Excel中查找值

excel - 想要通过 PL/SQL 将两个 Excel 工作表作为邮件附件

Excel VBA 运行时错误 1004 仅适用于以 'c' 开头的名称

Excel VBA : Answer gets "stuck"

excel - 过滤表中的日期值

excel - VBA excel宏

excel - 将多个值存储到字典中

vba - 定义两个范围,然后将它们连接起来

c# - 如何使用 C# 在 Excel 自动化中卡住首行并应用筛选器

excel - 在文件夹中的所有文件上运行宏(将链接的单元格分配给给定工作表上的所有复选框)