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

时间:2013-07-16 11:49:18

标签: excel vba combobox

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

我想要实现的是当用户点击一个按钮时,会创建一个包含各种项目的新表单(ComboBoxes,RadioButtons等),因此我想以编程方式执行此操作。

2 个答案:

答案 0 :(得分:12)

您可以依赖以下代码:

 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

答案 1 :(得分:0)

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

或者,在“工具/参考”对话框中找到此参考。

您可以以编程方式创建UserForm,ComboBox等,但只需插入一个UserForm并将其隐藏起来直到需要它会更容易。如果需要,您还可以以编程方式向其添加新控件。

已添加表单对象库不允许您创建全新的表单和控件。您需要 Microsoft Visual Basic for Applications可扩展性库。 This link已久,但仍然相关。