我尝试做类似的事情:
cmbMyBox.ListFillRange = "E2"
但组合框似乎没有填充。
最佳答案
首先,为了尝试从 VBA 设置 listfillrange,您需要包含 '=' 符号,如下所示:
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"
再次使用 '='
符号!!此动态范围列表项会动态增长/缩小,具体取决于您在 A 列中的值。
我知道我回答得很晚,但我注意到很多人认为命名范围总是必须固定的,而它们也可以是动态的......
你怎么做到这一点?
在 Excel 2007 及更高版本中,转到功能区选项卡
"Formulas"
并单击“名称管理器”按钮您可以在此处管理所有定义的命名范围,而不是选择单元格并在左上角的框中为其命名。
创建一个新的,并给它值(不带引号):
"=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))"
。你去...
附言当您让动态命名范围更改时,您应该使用 VBA 重新设置 .ListFillRange,以便组合框刷新其列表项。
关于excel - 在 Excel ComboBox 中动态设置 ListFillRange,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4200712/