来自另一张表的ListFillRange

时间:2015-01-28 18:20:47

标签: excel-vba vba excel

我试图使用另一张工作表中的.ListFillRange来填充组合框但是列表没有被填充。

我有组合框" sheet1"以及" sheet2"在细胞A2:A3000

从sheet1我尝试使用:

set ws = ThisWorkbook.Worksheets("sheet2")
set Rng = ws.Range("A2:A3000")
ComboBox.ListFillRange = ws.Range(Rng)

我也试过

ComboBox.ListFillRange = ws.Range("sheet2!A2:A3000")

然而,组合框没有被填充,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

ListFillRange是一个字符串,因此您需要传入范围的地址。由于范围在另一张纸上,因此您需要限定该地址。幸运的是,Address属性有一个External参数。

Sheet1.ComboBox1.ListFillRange = Sheet2.Range("A2:A3000").Address(, , , True)

Address属性看起来像

?Sheet2.Range("A2:A3000").Address(, , , True)
[Book2]Sheet2!$A$2:$A$3000

但是控件理解并转换它。

?sheet1.ComboBox1.ListFillRange
Sheet2!$A$2:$A$3000

话虽如此,我从不使用ListFillRange。我更喜欢使用List或AddItem来填充控件。