【问题标题】:Listbox ListFillRange列表框 ListFillRange
【发布时间】:2014-03-31 20:23:26
【问题描述】:

我在工作表上插入了一个表单控件列表框。由于某种原因,这会出错。

Sheet1.Shapes("ListBox1").ListFillRange = "A1:A10"

我想用范围填充列表框,但出现运行时错误“438”,对象不支持此属性或方法。我在这里错过了什么?

【问题讨论】:

    标签: excel vba listbox


    【解决方案1】:

    如果是Form列表框,就用这个:

    Worksheets("Sheet1").Shapes("ListBox1").ControlFormat.ListFillRange = "A1:A10"
    

    Range 对象:

    With Worksheets("Sheet1")
        .Shapes("ListBox1").ControlFormat.List = .Range("A1:A10").Value
    End With
    

    【讨论】:

    • 我不得不将 .List 更改为 .ListFillRange 并且它在 simoco 中起作用!谢谢。那里没有看到 .ControlFormat 方法,那是它被隐藏的地方。
    【解决方案2】:

    你会想要使用更多类似的东西:

    Sheet1.ListBox1.ListFillRange = "A1:A10"
    

    您试图找到一个名为“ListBox1”的Shape 对象,然后运行Shape 对象没有的方法。

    Edit v2:我明白了,在这种情况下需要演员(并且它们的工作方式与 vb.NET 不同),我认为这可以工作:

    Dim myListBox as ListBox
    SET myListBox = Sheet1.Shapes("ListBox1")
    myListBox.ListFillRange = "A1:A10"
    

    【讨论】:

    • 编译错误:找不到方法或数据成员。这是一个表单控件列表框,而不是一个用户表单列表框。我可以使用 Shapes 对象操作其他所有表单控件的属性。
    • 你的 ListBox 是在哪里定义的?
    • 我有我使用的单选按钮选项:Sheet1.Shapes("Button1").Visible = True ... 工作正常。
    • 单选按钮问题有效,因为所有控件都具有 Visible 属性,但并非所有控件都具有 ListFillRange 方法 - 请参阅我关于投射的更新答案
    • 子或函数未定义
    猜你喜欢
    • 2018-09-18
    • 2020-07-13
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多