以编程方式在VBA中添加ComboBox(Excel)

我正在尝试在VBA中创build,放置和填充ComboBox的元素。 我不明白我错过了什么,但我不可能知道如何去做。 我没有 MSForms在我的API(即我不能写一些Dim someComboBox As MSForms.ComboBox因为它失败了。是否有可能导入它以某种方式吗?有人可以指向我在正确的方向吗?

我想要实现的是,当用户点击一个button,一个新的窗体创build与各种项目(combobox,RadioButtons等),因此我想这样做编程。

你可以依靠下面的代码:

  Set curCombo = ActiveSheet.Shapes.AddFormControl(xlDropDown, Left:=Cells(1, 1).Left, Top:=Cells(2, 1).Top, Width:=100, Height:=20) With curCombo .ControlFormat.DropDownLines = 2 .ControlFormat.AddItem "Item 1", 1 .ControlFormat.AddItem "item 2", 2 .Name = "myCombo" .OnAction = "myCombo_Change" End With 

您需要对Microsoft Forms 2.0对象库的引用。 一个简单的方法就是在你的项目中插入一个UserForm。

或者,在工具/参考对话框中find这个参考。

你可以通过编程的方式创build一个UserForm,一个ComboBox等等,但是插入一个UserForm会比较容易,直到需要时才会隐藏。 如果需要,您可以编程方式将新控件添加到它。

添加表单对象库不会使您能够创build全新的表单和控件。 您需要Microsoft Visual Basic for Applications扩展性库。 这个链接是旧的,但仍然相关。