Excel VBA将组合框列表从静态范围更改为动态范围

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel VBA将组合框列表从静态范围更改为动态范围相关的知识,希望对你有一定的参考价值。

这应该很简单,但我很挣扎。现在,这段代码有效:

cboCategoryEdit1.List = Sheets(2).Range("A2:A40").Value

我试图通过改变组合框的填充方式来“清理”我的项目。我希望它是一个组合框,其范围只需要填充细胞。意思是我需要使用最后一行功能。我将代码更改为此,我只是收到“未找到方法或数据成员”的错误。这是我的问题代码:

Dim i As Range
With Sheets("xRef-Categories")
    Set i = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
Me.cboCategoryEdit1.ListFillRange = i.Address

感谢您对此提供任何帮助。

顺便说一句:Sheet2是“xref-Categories”

答案

你只需要这个......

With Sheets("xRef-Categories")
    Me.cboCategoryEdit1.List = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row).Value
End With
另一答案

您可以像这样简化它:

With Sheets("xRef-Categories")
    Me.cboCategoryEdit1.List = .Range("A2" , .Range("A" & .Rows.Count).End(xlUp)).Value
End With

以上是关于Excel VBA将组合框列表从静态范围更改为动态范围的主要内容,如果未能解决你的问题,请参考以下文章

VBA-Excel ComboBox 具有条目列表,首先显示最后输入的值

在 Excel VBA 中动态调整组合框的宽度

Excel VBA文本框以填充组合框

VBA 中的动态组合框项

从组合框中选择下一个项目,然后单击 Excel VBA 按钮

使用Excel VBA调整列表框以显示比列表框宽度更长的字符串