在Excel中制作下拉列表的3种方法(3)

  2.将光标放到表格中,这时光标变成细黑十字形,在表格中画一个组合框。

  3.右击组合框,在弹出的菜单中选择“设置控件格式”。

  在“设置控件格式”对话框中选择“控制”选项卡,设置“数据源”区域为“'1月工资'!$B$3:$B$14”(或“姓名”),设置“单元格链接”为$J$1,如图。

  单击“确定”回到表格中,按ESC键或在任一单元格单击一下取消组合框的编辑状态。这样设置以后,我们在下拉列表中选择一个姓名后,在J1单元格中将出现该姓名在姓名列表中的相对位置。例如我们选择第3个姓名“王霞”,J1单元格中返回数值3。

  4.在数据区C3:H14中用VLOOKUP函数对工资数据进行关联,利用工资表中的序号数字返回工资数据,方法同上。

  方法三:用VBA控件工具箱中的组合框控件。

  1.在菜单栏上右击,在弹出的菜单中选择“控件工具箱”,将弹出“控件工具箱”浮动工具栏,单击“组合框”控件。

  2.将光标放到表格中,这时光标变成细黑十字形,在表格中画一个组合框。

  3.右击组合框,在弹出的菜单中选择“属性”。

  4.在“属性”窗口中,将ListFillRange属性设置为“'1月工资'!B3:B14”。关闭“属性”窗口 。

  5.按Alt+F11,打开VBA编辑器,在“个人工资表”中添加 下列代码:

  Private Sub ComboBox1_Change()

  Range("c1") = ComboBox1.Value

  End Sub

  6.在数据区C3:H14中用VLOOKUP函数对工资数据进行关联,方法同上。

  另外,我们也可以使用VBA代码将员工名单添加到组合框中,有两种方法供选择:

  在VBA编辑器的“工程”窗口中,双击“ThisWorkBook”,在右侧的代码窗口中输入下列代码:

  1.使用 AddItem 方法添加项目:

  Private Sub Workbook_Open()

  Dim vName As Variant

  Dim i As Integer

  '创建列表

  vName = Array("张梅", "黄中", "王霞", "应军军", "郑枭", "刘梅波", "李飞", "吴燕")

  '使用 AddItem 方法

  For i = LBound(vName) To UBound(vName)

  Sheet3.ComboBox1.AddItem vName(i)

  Next i

  End Sub

  2.使用 List 属性添加项目:

  Private Sub Workbook_Open()

  Dim vName As Variant

  Dim i As Integer

  '创建列表

  vName = Array("张梅", "黄中", "王霞", "应军军", "郑枭", "刘梅波", "李飞", "吴燕")

  '使用 List 属性

  Sheet3.ComboBox1.List = WorksheetFunction.Transpose(vName)

  End Sub

  其中Sheet3是VBA编辑器“工程”窗口中与“个人工资表”名称对应的工作表,这里直接引用的是Sheet3,而不是工作表名称。这样,每次打开工作簿时,姓名列表会自动添加到组合框中。