我正在尝试在VBA中创建,放置和填充ComboBox的元素。我不明白我错过了什么,但我不知道该怎么做。我不在我的API中有MSForms
(即我无法写Dim someComboBox As MSForms.ComboBox
因为它失败了。是否有可能以某种方式导入它?有人能指出我正确的方向吗?
我想要实现的是当用户点击一个按钮时,会创建一个包含各种项目的新表单(ComboBoxes,RadioButtons等),因此我想以编程方式执行此操作。
答案 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已久,但仍然相关。