`
ganliang13
  • 浏览: 251913 次
  • 性别: 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  
模板打开时提示文件损坏啊!!!!!

相关推荐

    Excel-VBA宏编程实例源代码-在列表框或者下拉列表中选择数据并显示在指定的单元格中.zip

    本实例源代码着重讲解了如何利用VBA宏编程技术,在Excel的列表框或下拉列表中选择数据,并将所选内容动态显示在指定的单元格中。这一功能在数据分析、报告生成以及用户交互界面设计中具有广泛的应用。 首先,我们...

    设置EXCEL下拉列表框的3种方法

    本文将详细介绍三种设置Excel下拉列表框的方法。 ### 方法一:数据验证 1. **开启数据验证**:首先,选中你想要添加下拉列表的单元格范围。然后,进入“数据”菜单,点击“数据验证”(或使用快捷键Alt + A + V)...

    Excel中下拉列表框的制作方法.doc

    在Excel中,下拉列表框是一种非常实用的功能,它可以帮助用户从预定义的选项中进行选择,提高数据输入的准确性和效率。制作下拉列表框主要有两种方法:数据有效性设置和使用开发工具中的窗体控件。下面将详细介绍这...

    表格控件中下拉列表框的使用例子

    例如,一个包含国家/地区的列,可以设置为下拉列表,列出所有可选的国家,避免用户手动输入错误。 实现这个功能,开发者可能需要以下步骤: 1. **创建表格控件**:在程序中实例化表格控件,并设置其属性,如行数、...

    excel字段的下拉列表制作

    在Excel中制作多列字段的下拉列表框可以极大地提高数据输入的准确性和效率,避免手动输入时的错误。下面将详细介绍如何实现这一功能。 首先,我们需要了解Excel中的数据验证功能,这是创建下拉列表的基础。数据验证...

    Excel-VBA宏编程实例源代码-通过窗体中的下拉列表框来实现工作表的滑动.zip

    本实例“Excel-VBA宏编程实例源代码-通过窗体中的下拉列表框来实现工作表的滑动”着重展示了如何利用VBA和窗体控件(特别是下拉列表框)来实现工作表之间的快速切换。 首先,我们需要理解VBA的基本结构。VBA代码...

    Access数据库多选复选框例子.zip

    在Access数据库中,多选复选框是一种非常实用的用户界面元素,它允许用户在一个列表中选择多个选项。本示例文件"Access数据库多选复选框例子.zip"旨在演示如何在Access应用中创建和使用这样的功能。这个压缩包可能...

    Excel-VBA宏编程实例源代码-在列表框和下拉列表中添加指定的文本.zip

    本实例源代码着重于如何利用VBA宏来实现向列表框和下拉列表中添加指定的文本,这对于创建交互式工作表和自定义用户界面非常有用。 首先,我们需要理解Excel中的列表框(ListBox)和下拉列表(ComboBox)。列表框是...

    Excel-VBA宏编程实例源代码-将工作表中指定的单元格区域中的数据添加到列表框和下拉列表中.zip

    本实例源代码——"将工作表中指定的单元格区域中的数据添加到列表框和下拉列表中.xlsm" ——是关于如何利用VBA(Visual Basic for Applications)来操作Excel界面元素,特别是列表框(ListBox)和下拉列表(ComboBox...

    java下拉菜单复选框

    这允许我们在下拉列表中展示带有复选框的项,而不是简单的文本。 6. **UI布局**:在Java GUI设计中,`LayoutManager`用于控制组件的布局。对于这个特定的实现,可能使用`BoxLayout`或`GridBagLayout`来确保文本框和...

    如何在Excel中自定输入数据下拉列表-.docx

    - **级联下拉列表**:通过嵌套多个数据有效性规则,实现根据上一级选择自动更新下一级下拉列表的效果,适用于层级结构的数据录入场景。 - **错误提示消息**:在“数据有效性”设置中,可以选择添加输入消息或错误...

    excel表格复选框如何打钩.doc

    在Excel2013中,我们可以通过点击“文件-选项-自定义功能区”在右侧“自定义功能区“下拉列表中选中“主选项卡”,在下面的列表中选中“开发工具”复选框,然后确定。之后会发现主选项卡上多出一项--开发工具,其中...

    4.4ListBox控件(打造带有复选框的ListBox)

    在Windows编程中,MFC(Microsoft ...总之,MFC的CCheckListBox控件使得在Windows应用程序中实现带复选框的列表变得更加简单。通过合理的布局、初始化和事件处理,我们可以为用户提供更加直观和易用的选择界面。

    Excel2021中使用下拉列表控制显示不同系列的图表.docx

    在Excel 2021中,使用下拉列表控制显示不同系列的图表是一种高效的数据可视化方法,尤其适用于处理包含多个数据系列的复杂表格。这种方法可以让用户根据需要选择要展示的特定系列,使得分析和比较更加方便。以下是...

    [最新知识]excel下拉菜单的流程是什么.doc

    **关于去除Excel下拉列表的步骤**: 如果你后来不再需要这个下拉菜单,可以按照以下步骤删除它: 1. **取消验证**: 首先,你需要选中包含下拉菜单的单元格。然后再次点击“数据”菜单,选择“数据验证”或“数据...

    VBA设置多级下拉菜单.xlsm

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

    RibbonX动态生成ComboBox,DropDown的Item

    标题中的“RibbonX动态生成ComboBox,DropDown的Item”指的是在VSTO(Visual Studio Tools for Office)开发环境中,利用C#编程语言为Excel添加自定义功能时,如何通过RibbonX来动态创建和管理ComboBox(下拉列表框)...

    完整版让超级列表框像表格那样轻松操作.e.rar

    1. **多列显示**:超级列表框可以被配置为显示多列,就像Excel或数据库表格一样,每列可以显示不同类型的数据。 2. **排序功能**:用户可以通过点击列头对列表框中的条目进行升序或降序排序。 3. **筛选和搜索**:...

    excel 2010 添加表单组件的方法

    表单组件通常包括文本框、复选框、单选按钮和下拉列表等元素,这些元素使得工作表变得更加直观且易于操作。下面我们将详细探讨如何在Excel 2010中添加这些组件以及它们的具体用途。 首先,要启用Excel 2010的“开发...

Global site tag (gtag.js) - Google Analytics