Excel提供了下拉列表的实现,但并不支持多选,后来慢慢找资料终于利用VBA编程实现了多选的问题。
首先点击视图->宏,工程资源所示:
有Microsoft Excel对象:对应的是Sheet1或Sheet2对像等;
窗体:对应的是弹出的对话框;
模块:对应的是调用某些功能的入口。
以Sheet1页单击D列为例弹出框供多选
1:
先建立宏,然后编辑,在"Microsoft Excel对象"中单击"Sheet2"的右键-》查看代码
将此代码保存:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) //说明:监听sheet1发生的用户操作事件
If ActiveCell.Column = 8 And ActiveCell.Row > 1 Then //说明:当前激活列为J列,第二行以下
Call ShowFM2 //调用显示窗体宏名
End If
End Sub
2:
在工程资源-》"模块"对象 中 “插入模块”-》查看代码
保存如下代码:
Sub ShowFM()
UserForm1.Show
End Sub
3:
在工程资源->"窗体"->插入"用户窗体"
然后在"工具箱"里拖放"列表框"和"命令按钮"到窗体上
接着点击"查看代码"
将以下代码保存:
Private Sub CommandButton1_Click()
Dim Arr(), k&, i&
ReDim Arr(1 To 1)
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
k = k + 1
ReDim Preserve Arr(1 To k)
'Arr(k) = .List(i, 1)
Arr(k) = Sheet2.Range("A" & (i + 1)).Value //获取Sheet2列表中A列i+1行的值
End If
Next i
End With
'MsgBox "您选择了:" & Join(Arr, ",")
UserForm1.Hide
'Application.ActiveSheet.Range("A1").Value = Join(Arr, ",")
Application.ActiveCell.Value = Join(Arr, ",") //将值放入到当前单元格
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Initialize()
With UserForm1.ListBox1
.RowSource = "Sheet2!A1:A49" '设定源数据区域 ,下拉列表框的数据来源
.ColumnCount = 1 '设定列数
.ColumnHeads = False '设定列标题。标题为数据区域的上一行
.BoundColumn = 2
.MultiSelect = fmMultiSelectMulti '按空格键或单击鼠标以选定列表中一个条目或取消选定。
' .MultiSelect = fmMultiSelectExtended '按 Shift 并单击鼠标,或按 Shift 的同时按一个方向键,将所选条目由前一项扩展到当前项。按 Ctrl 的同时单击鼠标可选定或取消选定。
' .MultiSelect = fmMultiSelectSingle '只可选择一个条目(默认)。
End With
End Sub
-----
保存试试看,不行的话看附件
相关推荐
VBA设置多级下拉菜单.xlsm VBA设置动态多级下拉菜单.xlsm
http://blog.csdn.net/tx_officedev/article/details/7073652资源
1、建立分类下拉列表填充项 2、建立“常用文档”新菜单 3、让不同类型数据用不同颜色显示 4、制作“专业符号”工具栏 5、用“视面管理器”保存多个打印页面 6、让数据按需排序 7、把数据彻底隐藏起来 8、让中、英文...
1、建立分类下拉列表填充项 31 2、建立“常用文档”新菜单 32 3、让不同类型数据用不同颜色显示 32 4、制作“专业符号”工具栏 32 5、用“视面管理器”保存多个打印页面 33 6、让数据按需排序 33 7、把数据彻底隐藏...
04147设置单元格区域的除对角框线以外的全部边框 04148删除单元格区域的全部边框 04149设置单元格的颜色和背景 04150设置单元格的格式 04151设置单元格的对齐方式 04152缩小单元格内容以全部显示 04153设定、删除...
1、建立分类下拉列表填充项 2、建立“常用文档”新菜单 3、让不同类型数据用不同颜色显示 4、制作“专业符号”工具栏 5、用“视面管理器”保存多个打印页面 6、让数据按需排序 7、把数据彻底隐藏起来 8、让中、英文...
复选框和选项按钮:相信大家对此并不陌生,我们在WEB页面上注册时,经常会遇到这两个东西,能让使用者根据实际情况作出选择。 列表框和组合框:单击它能弹出一...
6、《抽奖》工作表中的下拉列表根据设置自动生成,请不要更改其下拉列表的内容。 7、全屏显示。具体方法:“视图”-“全屏显示”。 8、更换背景。具体方法:“格式”-“工作表”-“背景”,选择你要的背景图片即可...
利用 Excle 自带的“用户窗体”功能绘制窗体及组件(VBA称为控件),绘制完可...可修改部分组件的字体风格,支持的组件有:标签、输入框、文本框、多选框、单选框、下拉菜单、列表框、按键、旋钮按键(只能改颜色)。
FineReport功能说明:、 多 sheet 报表设计:支持在设计器中创建多 Sheet...复选框、下拉树,下拉多选树、单/复选框组,密码框,网页框,列表、表格树、多文件上 传等二十多种编辑器,报表参数页面和报表内容合二为一。
自动更新技巧:使用TODAY和NOW函数 方法:选择单元格区域,单击"数据 有效性"命令,从"数据有效性" 对话框中选择"设置"选项卡,在"允许"下拉列表中选择"序列",在 "来源"框中输入我们设置下拉列表所需的数据序列,...
二、建立分类下拉列表填充项.......................................................................................................2 三、建立“常用文档”新菜单.............................................
Ch3_14:在GridView中使用下拉列表框。 Ch3_15:在GridView中使用checkBox控件。 Ch3_16:在GridView中使用删除,加“确定删除”提示。 Ch3_17:在GridView中实现分页。 Ch3_18:在GridView中实现超级链接“详细...
高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。 “使用没有...
高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。 “使用没有...
高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。 “使用没有...
高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。 “使用没有...
实例208 自定义分页并结合下拉列表实现页次 切换 328 实例209 结合分页模板PagerTemplate实现 自定义分页 330 实例210 在GridView控件中动态添加模板列 331 实例211 带上下箭头排序并实现查询数据为 空显示表头 334...