来自另一个 sheet 的 ListFillRange

ListFillRange from another sheet

我正在尝试使用来自另一个 sheet 的 .ListFillRange 来填充一个组合框,但是该列表没有被填充。

我在 "sheet1" 上有组合框,在单元格 A2:A3000

上有 "sheet2" 上的数据

来自 sheet1 我试过使用:

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

我也试过了

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

但是没有填充组合框,有什么建议吗?

ListFillRange是一个字符串,所以需要传入范围的地址。由于范围在另一个 sheet 上,您需要限定该地址。幸运的是,地址 属性 有一个外部参数。

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

地址 属性 看起来像

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

但是控件理解并转换它。

?sheet1.ComboBox1.ListFillRange
Sheet2!$A:$A00

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