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