`
ganliang13
  • 浏览: 249431 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Excel下拉列表多选框实现

阅读更多

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

 

-----

 

保存试试看,不行的话看附件

分享到:
评论
4 楼 cys1314 2014-01-21  
太给力了,多谢
3 楼 Ivy_upup 2012-07-19  
不错!!!
学习了,多谢!
2 楼 hutao 2012-07-17  
给力
1 楼 今生缘 2012-07-07  
模板打开时提示文件损坏啊!!!!!

相关推荐

    VBA设置多级下拉菜单.xlsm

    VBA设置多级下拉菜单.xlsm VBA设置动态多级下拉菜单.xlsm

    RibbonX动态生成ComboBox,DropDown的Item

    http://blog.csdn.net/tx_officedev/article/details/7073652资源

    财务 人事 职场必学的Excel表格的35招必学秘笈 高级教程 图文最终版.pdf

    1、建立分类下拉列表填充项 2、建立“常用文档”新菜单 3、让不同类型数据用不同颜色显示 4、制作“专业符号”工具栏 5、用“视面管理器”保存多个打印页面 6、让数据按需排序 7、把数据彻底隐藏起来 8、让中、英文...

    Excel技术精华文章八篇-共52页

    1、建立分类下拉列表填充项 31 2、建立“常用文档”新菜单 32 3、让不同类型数据用不同颜色显示 32 4、制作“专业符号”工具栏 32 5、用“视面管理器”保存多个打印页面 33 6、让数据按需排序 33 7、把数据彻底隐藏...

    Excel VBA实用技巧大全 附书源码

    04147设置单元格区域的除对角框线以外的全部边框 04148删除单元格区域的全部边框 04149设置单元格的颜色和背景 04150设置单元格的格式 04151设置单元格的对齐方式 04152缩小单元格内容以全部显示 04153设定、删除...

    Excel表格的35招必学秘技(图文最终版).

    1、建立分类下拉列表填充项 2、建立“常用文档”新菜单 3、让不同类型数据用不同颜色显示 4、制作“专业符号”工具栏 5、用“视面管理器”保存多个打印页面 6、让数据按需排序 7、把数据彻底隐藏起来 8、让中、英文...

    EXCEL窗体应用实例

    复选框和选项按钮:相信大家对此并不陌生,我们在WEB页面上注册时,经常会遇到这两个东西,能让使用者根据实际情况作出选择。 列表框和组合框:单击它能弹出一...

    Excel抽奖程序(春节抽奖)

    6、《抽奖》工作表中的下拉列表根据设置自动生成,请不要更改其下拉列表的内容。 7、全屏显示。具体方法:“视图”-“全屏显示”。 8、更换背景。具体方法:“格式”-“工作表”-“背景”,选择你要的背景图片即可...

    Python GUI 助手(Excel版)

    利用 Excle 自带的“用户窗体”功能绘制窗体及组件(VBA称为控件),绘制完可...可修改部分组件的字体风格,支持的组件有:标签、输入框、文本框、多选框、单选框、下拉菜单、列表框、按键、旋钮按键(只能改颜色)。

    FineReport功能说明

    FineReport功能说明:、 多 sheet 报表设计:支持在设计器中创建多 Sheet...复选框、下拉树,下拉多选树、单/复选框组,密码框,网页框,列表、表格树、多文件上 传等二十多种编辑器,报表参数页面和报表内容合二为一。

    Excel表培训资料财务.pptx

    自动更新技巧:使用TODAY和NOW函数 方法:选择单元格区域,单击"数据 有效性"命令,从"数据有效性" 对话框中选择"设置"选项卡,在"允许"下拉列表中选择"序列",在 "来源"框中输入我们设置下拉列表所需的数据序列,...

    Excel表格入门到精通教程_Excel表格教程.pdf

    二、建立分类下拉列表填充项.......................................................................................................2 三、建立“常用文档”新菜单.............................................

    asp.net 各种事例

    Ch3_14:在GridView中使用下拉列表框。 Ch3_15:在GridView中使用checkBox控件。 Ch3_16:在GridView中使用删除,加“确定删除”提示。 Ch3_17:在GridView中实现分页。 Ch3_18:在GridView中实现超级链接“详细...

    Excel 2007数据透视表完全剖析 3/7

    高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。  “使用没有...

    Excel 2007数据透视表完全剖析 1/7

    高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。  “使用没有...

    Excel 2007数据透视表完全剖析 5/7

    高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。  “使用没有...

    Excel 2007数据透视表完全剖析 4/7

    高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。  “使用没有...

    第7章 数据绑定控件

    实例208 自定义分页并结合下拉列表实现页次 切换 328 实例209 结合分页模板PagerTemplate实现 自定义分页 330 实例210 在GridView控件中动态添加模板列 331 实例211 带上下箭头排序并实现查询数据为 空显示表头 334...

Global site tag (gtag.js) - Google Analytics