1、首先在开发工具中打开VBA编辑器
2、在单元格区域当中输入一些内容作为例子
3、在VBA编辑器中插入模块
4、在模块当中输入如下代码,然后运行Private Sub Worksheet_SelectionChange(蚱澄堆别ByVal Target As Range)On Error Resume NextIf Target.Column > 1 Then Me.ListBox1.Visible=False: Exit Sub '如果不是第一列则隐藏列表框并退出程序 With ListBox1 .Visible=True '如果是第一列则显示列表框 .LinkedCell=Target.Address '列表框的链接地址设置为当前单元格 .BoundColumn=1 '将第一列的数据与单元格连接,即第二、三列仅共查看,无法输入到单元格中 .ColumnCount=3 '列表框的列数为3 .ColumnHeads=True '显示表头 .ListStyle=fmListStyleOption '设置样式 .Left=Target.Left+Target.Width '列表框的左边框等于当前单元格左边距加单格的宽度,即位于当前单元格的右边 .Top=Target.Top '列表框的上边距等于当前单元格的上边距 .ColumnWidths="35;35;35" '设置列表框三列的宽度 .ListFillRange="e2:g11" '设置列表框的数据引用源,也可改为动态数据源,将 行数11改为worksheetfunction.counta(range("G:G")) '.ListFillRange="e2:g" & WorksheetFunction.CountA(Range("G:G")) .ListIndex=0 '单击单元格时默认显示列表框中第一行数据 End WithEnd Sub
5、单击单元格A2,弹出列表框,列表框的条目即参照区域中的数据。显示列表框的同时列表框第一行数据输入到单元格中,如图