Combobox excel中activex控件与forms控件的比较

Combobox excel中activex控件与forms控件的比较,combobox,excel,excel-2007,vba,Combobox,Excel,Excel 2007,Vba,我在Excel2007工作表上有一些activex和窗体控件下拉列表用于测试。我已使用以下代码绑定数据: Private Sub ComboBox1_Change() If ComboBox1.Value = 1 Then ComboBox2.List = Array("a", "b", "c") ComboBox2.Value = ComboBox2.List(0) ElseIf ComboBox1.Value = 2 Then

我在Excel2007工作表上有一些activex和窗体控件下拉列表用于测试。我已使用以下代码绑定数据:

Private Sub ComboBox1_Change()
    If ComboBox1.Value = 1 Then
        ComboBox2.List = Array("a", "b", "c")
        ComboBox2.Value = ComboBox2.List(0)
    ElseIf ComboBox1.Value = 2 Then
        ComboBox2.List = Array("A", "B", "C", "D")
        ComboBox2.Value = ComboBox2.List(0)        
    End If
End Sub

Private Sub Worksheet_Activate()
    ComboBox1.List = Array(1, 2)  
    ComboBox3.List = Array("Delhi", "Kolkata")
    ComboBox3.Value = ComboBox3.List(0)
    ComboBox4.List = Array("Delhi6", "Kolkata71")
    ComboBox4.Value = ComboBox4.List(0)
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.List = Array(1, 2)
End Sub
但是当我重新打开我的工作表时,组合框会以原来的状态打开 已关闭,下拉列表中没有数据。请告知我错过了哪一项比赛


提前感谢…

我从一位朋友那里得到了帮助,发现我犯了一个错误。。。我在工作表中使用的UserForm_初始化函数根本不应该使用。第二,我们也不会使用工作表

所需的functon是

Private Sub Workbook_Open()
Sheets("Print_Sheet").ComboBox1.List = Array(1, 2, 3, 4)
Sheets("Print_Sheet").ComboBox3.List = Array("Delhi", "Kolkata")
Sheets("Print_Sheet").ComboBox3.Value = ComboBox3.List(0)
Sheets("Print_Sheet").ComboBox4.List = Array("Delhi6", "Kolkata71")
Sheets("Print_Sheet").ComboBox4.Value = ComboBox4.List(0)
End Sub
这将在Microsoft Excel对象下的此工作簿中使用。
现在,组合已正确填充

1如果控件位于工作表上,为什么要使用UserForm_Initialize?2控件是否在第一页上?3组合框是ActiveX控件还是控件?嗨,Sid,控件在表1中。ComboBox1和2是表单控件,而3,4是activex…感谢您回答第二季度和第三季度的问题。这就剩下Q1了:哎呀…我的错误…对此我会说…我只是在玩玩,因为我不是excel专家…我想这可能是个事件…普莱曼舒,我能看看你的excel文件吗?如果是,你可以上传到wikisend.com并在这里共享链接。。。