可通过VBA实现下拉框加长的(显示更多待选项)的需求.
按Alt+F11,调出VBA,在VBAProject 右键→插入→用户窗体
调整窗体成细长的形状
分别增加一个按钮和列表框
在工作表某列把待选内容输入好(此例放N列);双击列表框,在弹出的窗口中输入以下代码
Private Sub UserForm_Initialize()
n = Sheets("记录明细").Range("N" & Rows.Count).End(xlUp).Row
arr = Sheets("记录明细").Range("N3:N" & n)
ListBox1.List = arr
End Sub
5.单击"UerForm1",双击 "选择"按钮
6.在弹出的VBA窗口中输入以下代码
Private Sub CommandButton1_Click()
Dim s As String
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
s = s & ListBox1.List(i, 0)
End If
Next i
ActiveCell = ActiveCell & s
Unload Me
End Sub
7.在工作表名称上右键→查看代码
8.输入以下代码
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 4 And Target.Row > 2 Then
UserForm1.Show
End If
End Sub
9.双击待选单元格,点击需要的内容,再点选择
选择设置区域:
1、在“数据”选项下的“数据有效性”“设置”中,选择“序列”;
2、来源中输入下拉菜单内容,以英文逗号分隔,或直接选择下拉菜单内容所在区域,确定后,即可生成下拉菜单。
如果下拉的选项很多,甚至远远超过楼主需要的8项,手动添加是比较繁琐的,推荐楼主用“指定名称”的方法快速添加:
假设所属行业比如“食品餐饮”,“图书录像”之类的字段在A2:A100单元格区域,且A1为标题行“所属行业”字段
步骤一:选中A1:A100后单击“插入”菜单栏里的“名称”-----选择“指定”----勾选“首行”----单击确定
步骤二:选择创建下拉列表的单元格-----并单击“数据”菜单栏里的“有效性”-在“设置”的“允许”里选择“序列”-----在下面的输入框输入“=所属行业”
通过这两步可以把A1到A100的内容快速输入到下拉列表里。
注:通过此方法可以把所有选中区域按第一行为名称来进行命名,且数据来源即本例的A1:A100区域不必在本表内,可以是同工作簿的其他工作表!
你的截图上有滚动条,说明你的下拉列表里面有很多项。拖动滚动条就可以选择需要的选项。这是我估计你问都是,这里只能看到八个选项,你想同时能看到超过八个选项。这个是制作EXCEL软件的时候就已经固定了,估计不能拉长同时能显示更多选项。。
点击excle 选择需要设定的位置 数据-有效性-设置 在允许里选择-序列 再来源里填上-内容,内容 (把需要的填入就好中间用逗号)
忽略空值 不要打勾
提供下拉接头 打勾
补充 你指增加显示的长度吧 最多8个再多我也不清楚了