Excel VBA:为什么combobox只显示列表中的一个项目?
我尝试通过VBA制作一个combobox,它将在工作表的某些单元格的下拉列表中显示一些值。 这是相关的代码:
Set header = ActiveWorkbook.Worksheets(source_sheet_1_name).Range(Cells(4, 4), Cells(4, 9)) ActiveWorkbook.Names.Add Name:="header", RefersTo:=header UserForm2.ComboBox1.RowSource = "header"
但是,combobox只显示列表中的第一个项目。 我看了一天,仍然无法弄清楚我做错了什么。
RowSource
不能使用水平列表,但是您可以简单地将范围指定给combobox的Column
属性,如下所示:
UserForm2.ComboBox1.Column = Header.Value
小小的解决方法:
Set header = ActiveWorkbook.Worksheets(source_sheet_1_name).Range(Cells(4, 4), Cells(4, 9)) For Each cell In header UserForm2.ComboBox1.AddItem (cell.Value) Next cell
我创build了一个垂直列表,并稍微调整了代码。 我创build的表单有一个命令button和一个combobox。 点击button设置combobox的行源(cbo1)。
Option Explicit Dim mylist As Range Private Sub CommandButton1_Click() Set mylist = ActiveWorkbook.Worksheets("lists").Range(Cells(4, 4), Cells(9, 4)) ActiveWorkbook.Names.Add Name:="header", RefersTo:=mylist Me.cbo1.RowSource = "header" End Sub
希望这可以帮助
Sybolt