动态填充列表框 - 排除空单元格

时间:2010-04-22 14:45:05

标签: excel vba listbox

我在excel中创建一个表单(不是用户表单),我正在使用单元格填充列表框。然而,这些细胞有时为A1:10,有时它们是A1:A4。有没有办法动态更改列表框中显示的内容?

现在,当我使用A1:10并且只填充了4个单元格时,我得到4个填充单元格的列表,然后是6个空白条目。当只有4个时,我想摆脱6个空白。

2 个答案:

答案 0 :(得分:0)

不幸的是,这更像是一种解决方法,而不是解决方案。但是,它可能能够做你需要它做的事情。我一直在尝试使范围变得活跃,与你在同一面墙上。

如果没有看到一些代码来确切知道你在做什么,请尝试这样的事情。

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

我对用户表单之外的列表框不是很熟悉,但是这应该大概做你想做的事情。

使用您的代码编辑您的原始帖子,以便我们可以尝试更好地了解您尝试过的内容以及您尝试执行的操作。

答案 1 :(得分:0)

您可以使用动态公式创建命名范围。以下公式中的任何一个都可以使用。

=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,然后单击new,将上面两个选项之一插入“refer to:”部分,然后根据需要标记新范围。在列表框的“行来源”部分中,只需键入为新命名范围选择的名称。