【问题标题】:ListFillRange from another sheet来自另一张纸的 ListFillRange
【发布时间】:2015-01-29 04:51:54
【问题描述】:

我正在尝试使用另一张工作表中的 .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")

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    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 自己填充控件。

    【讨论】:

    • 我检查了答案,但由于工作簿参考,它无法正常工作 - 例如[书 2]。 (控制不转换它)。因此,要生成这样的地址,我们需要手动组装工作表和范围。这是有效的答案:stackoverflow.com/questions/33622036/…
    猜你喜欢
    • 2018-11-19
    • 2022-08-11
    • 1970-01-01
    • 2023-04-09
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多