dynamic范围和一个静态项目通过VBAcombobox

我有这个代码:

With Sheet1.Shapes("comboBox1").ControlFormat .ListFillRange = "namedRange" .AddItem "1.Item" End With 

但之后,只有“1.Item”在我的Combo-Box ,dynamic范围根本不出现。

我如何添加一个 Item和我的RangeCombo-Box


编辑

dynamicrange将工作,如果我删除.AddItem

 With Sheet1.Shapes("comboBox1").ControlFormat .ListFillRange = "namedRange" End With 

我的问题是,如果有可能结合那些不在一个范围内,而是相互分离。


提前非常感谢您的回答。

如果我正确理解了你的post,你想添加另一个项目到你的“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 

你必须使用“形状”?

如果不是的话,你可以用这样的命名范围填充combobox:

 With Sheet1.ComboBox1 .List = Application.Transpose(Range("namedRange")) .AddItem "1.Item" End With