我有这段代码:
With Sheet1.Shapes("comboBox1").ControlFormat
.ListFillRange = "namedRange"
.AddItem "1.Item"
End With
但在那之后,只有“1.Item”在我的Combo-Box
中,动态范围根本没有出现。
如何将一个 Item
和我的Range
添加到Combo-Box
?
修改
如果我删除range
:
.AddItem
就可以了
With Sheet1.Shapes("comboBox1").ControlFormat
.ListFillRange = "namedRange"
End With
我的问题是,是否有可能将这些组合在一个范围内,而不是彼此分开。
非常感谢您的答案...
答案 0 :(得分:2)
如果我理解了你的帖子,你想要在你的" namedRange"中添加另一个项目。并在工作表ComboBox中显示所有这些项目(实际上是工作表中的下拉列表)。
(修改" Sheet2"到你的表格名称)。
Sub PopulateCombo_fromArray()
Dim ComboArray As Variant
'clear Combo-Box from previous runs >> modify "Sheet2" to your sheet's name
Worksheets("Sheet2").Shapes("ComboBox1").ControlFormat.RemoveAllItems
' reading the NamedRange into a 1-dimension array
ComboArray = Application.Transpose(Range("namedRange").Value)
ReDim Preserve ComboArray(UBound(ComboArray))
' add another element to the array (outside the "namedRange")
ComboArray(UBound(ComboArray)) = "1.Item"
' populate "ComboBox1" with array
Worksheets("Sheet2").Shapes("comboBox1").ControlFormat.List = ComboArray
End Sub
答案 1 :(得分:1)
你必须使用“形状”吗?
如果没有,您可以使用如下命名区域填充组合框:
With Sheet1.ComboBox1
.List = Application.Transpose(Range("namedRange"))
.AddItem "1.Item"
End With