我对VBA for Excel很新,我试图制作一个ComboBox
并用特定范围的值填充它。我从互联网的某处获得了盒子本身的代码,并添加了一些ListFillRange
作为它的东西。问题是ComboBox
的列表只有我指定的范围的第一个单元格的值,无论我尝试什么。我搜索了整个互联网,无法找到解决方案。我把盒子放在一个单独的宏中,只是为了测试是什么问题。这是代码:
Sub testme()
Dim box As OLEObject
Dim myRng As Range
'combobox from the Control toolbox toolbar
Set myRng = ActiveSheet.Range("a25")
With myRng
Set box = .Parent.OLEObjects.Add _
(ClassType:="Forms.ComboBox.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=.Left, _
Top:=.Top, _
Width:=.Width, _
Height:=.Height)
End With
box.LinkedCell = "b20"
Dim gebied As Range
Set gebied = Range("$A$4:$I$4")
box.ListFillRange = gebied.Cells.Address
End Sub
答案 0 :(得分:1)
ListFillRange需要在一列中。对于WorkSheet ActiveX ComboBox
,我认为没有办法解决这个问题,但我可能错了。尝试类似:
Set gebied = Range("$A$4:$A$11")
box.ListFillRange = gebied.Cells.Address