【发布时间】:2014-03-31 20:23:26
【问题描述】:
我在工作表上插入了一个表单控件列表框。由于某种原因,这会出错。
Sheet1.Shapes("ListBox1").ListFillRange = "A1:A10"
我想用范围填充列表框,但出现运行时错误“438”,对象不支持此属性或方法。我在这里错过了什么?
【问题讨论】:
我在工作表上插入了一个表单控件列表框。由于某种原因,这会出错。
Sheet1.Shapes("ListBox1").ListFillRange = "A1:A10"
我想用范围填充列表框,但出现运行时错误“438”,对象不支持此属性或方法。我在这里错过了什么?
【问题讨论】:
如果是Form列表框,就用这个:
Worksheets("Sheet1").Shapes("ListBox1").ControlFormat.ListFillRange = "A1:A10"
或Range 对象:
With Worksheets("Sheet1")
.Shapes("ListBox1").ControlFormat.List = .Range("A1:A10").Value
End With
【讨论】:
你会想要使用更多类似的东西:
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"
【讨论】:
Visible 属性,但并非所有控件都具有 ListFillRange 方法 - 请参阅我关于投射的更新答案