fir*_*ger 3 excel vba excel-vba
我尝试过这样的事情:
cmbMyBox.ListFillRange = "E2"
Run Code Online (Sandbox Code Playgroud)
但组合框似乎并不适合居住.
小智 12
首先,要尝试从VBA设置listfillrange,您需要包含'='符号,如下所示:
combobox.ListFillRange = "=E3:E13"
Run Code Online (Sandbox Code Playgroud)
而不是combobox.ListFillRange = "E3:E13",这是行不通的.
您可以拥有动态命名范围,例如:
listItems: "=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))"
Run Code Online (Sandbox Code Playgroud)
使用VBA像这样设置ListFillRange:combobox.ListFillRange = "=listItems"
再次,使用'='标志!!
此动态范围listItems动态增长/收缩,具体取决于A列中的值.
我知道我回答的确很晚,但我注意到很多人认为命名范围总是必须修复,而它们也可以是动态的......
你怎么做到这一点?在Excel 2007及更高版本中,您转到功能区选项卡"Formulas"并单击"名称管理器"按钮而不是选择单元格并在左上方框中为其指定名称,您可以在此处管理所有已定义的命名范围.创建一个新的,并给它值(不带引号):
"=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))".
你去......
PS当您让动态命名范围更改时,您应该使用VBA重新设置.ListFillRange,以便组合框将刷新其列表项.