【发布时间】:2010-04-22 14:45:05
【问题描述】:
我在 excel 中创建一个表单(不是用户表单),我正在使用单元格填充列表框。但是,这些单元格有时是 A1:10,有时是 A1:A4。有没有办法动态更改列表框中显示的内容?
现在,当我使用 A1:10 并且只填充了 4 个单元格时,我得到了 4 个填充单元格的列表,后跟 6 个空白条目。当只有 4 个时,我想去掉 6 个空格。
【问题讨论】:
我在 excel 中创建一个表单(不是用户表单),我正在使用单元格填充列表框。但是,这些单元格有时是 A1:10,有时是 A1:A4。有没有办法动态更改列表框中显示的内容?
现在,当我使用 A1:10 并且只填充了 4 个单元格时,我得到了 4 个填充单元格的列表,后跟 6 个空白条目。当只有 4 个时,我想去掉 6 个空格。
【问题讨论】:
不幸的是,这与其说是解决方案,不如说是一种解决方法。但是,它可能能够完成您需要它做的事情。我一直在尝试使范围动态化。
没有看到一些代码来确切地知道你在做什么,尝试这样的事情。
Private Sub ListBox1()
x = 1
'Add items to listbox until you reach an empty cell.
Do while Cells(x,1) <> ""
ListBox1.AddItem Cells(x,1)
Loop
我对用户表单之外的列表框不是很熟悉,但这应该可以做你想做的事情。
使用您的代码编辑您的原始帖子,以便我们可以尝试更好地了解您尝试过的内容以及您正在尝试做的事情。
【讨论】:
您可以使用动态公式创建命名范围。以下任一公式都可以使用。
=A1:INDEX($A$1:$A$10,MATCH("",$A$1:$A$10,0)-1)
=OFFSET($J$7,0,0,MATCH("",$J$7:$J$32,0)-1)
要创建命名范围,请单击 ctrl+F3,然后单击新建,将上述两个选项之一插入“引用:”部分,然后根据需要标记新范围。在列表框的“行源”部分中,只需输入您为新命名范围选择的名称。
【讨论】: