在用户窗体中,我插入了ComboBox,我必须通过Array添加列表,以下是代码。我想知道是否有可能在ComboBox列表中从工作表中的范围获取数据(例如在进行数据验证的情况下)
Private Sub UserForm_Initialize()
ComboBox1.List = Array("Item1", "Item2", "Item3", "Item4")
End Sub
答案 0 :(得分:2)
您可以使用工作表中的范围来创建甚至是命名范围,例如:
combobox1.list = range(cells(1,1),cells(100,1)).value
combobox2.list = sheets(1).range("NamedRange")
arr = array("1","2","3")
combobox3.list = arr
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以将其设置为表(ListObject)而不是静态范围。使用值列表创建表,而不只是使用静态单元格范围。这样,当您需要添加到列表中时,只需输入新值,这些新值将添加到表中。在我的示例中,我有一个名为“ Table1”的表和一个标题为“ Numbers”的列。然后调用此函数:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "=Table1[Numbers]"
End Sub
您必须在Iniitalize上执行此操作,因为从ComboBox属性设置RowSource将导致Excel在您第一次向列表中添加项目时崩溃。
这为您提供了一个列表,您无需编辑UserForm后面的代码即可进行编辑。