[英]Programmatically add ComboBox in VBA (Excel)
我正在尝试在VBA中创建,放置和填充ComboBox的元素。 我不明白我错过了什么,但我不知道该怎么做。 我的API中没有 MSForms
(即我无法将Dim someComboBox As MSForms.ComboBox
写Dim someComboBox As MSForms.ComboBox
因为它失败了。是否有可能以某种方式导入它?有人能指出我正确的方向吗?
我想要实现的是,当用户单击一个按钮时,会创建一个包含各种项目(ComboBoxes,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。
或者,在“工具/参考”对话框中找到此参考。
您可以以编程方式创建一个UserForm,一个ComboBox等,但是只需插入一个UserForm并将其隐藏起来直到需要它会更容易。 如果需要,您还可以以编程方式向其添加新控件。
添加表单对象库不会使您创建全新的表单和控件。 您需要Microsoft Visual Basic for Applications Extensibility库。 这个链接很旧,但仍然相关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.