我尝试做类似的事情:
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/