Excel怎么下拉框多选
打开Exlce,
确定,然后
右击查看代码,把这段代码复制到新建的文件里面
此时Excel会给出提示,选择否,,系统会提示保存,在保存的时候选择启用宏的工作簿然后保存,此时Excel下拉框多选就搞定了,最后,代码如下:
- Option Explicit
- Sub Worksheet_Change(ByVal Target As Range)
- '让数据有效性选择 可以多选,重复选
- Dim rngDV As Range
- Dim oldVal As String
- Dim newVal As String
- If Target.Count > 1 Then GoTo exitHandler
- On Error Resume Next
- Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
- On Error GoTo exitHandler
- If rngDV Is Nothing Then GoTo exitHandler
- If Intersect(Target, rngDV) Is Nothing Then
- 'do nothing
- Else
- Application.EnableEvents = False
- newVal = Target.Value
- Application.Undo
- oldVal = Target.Value
- Target.Value = newVal
- If oldVal = "" Then
- Else
- If newVal = "" Then
- Else
- Target.Value = oldVal _
- & ", " & newVal
- End If
- End If
- End If
- exitHandler:
- Application.EnableEvents = True
- End Sub
优化后的代码
- Option Explicit
- Sub Worksheet_Change(ByVal Target As Range)
- '让数据有效性选择 可以多选,重复选
- Dim rngDV As Range
- Dim oldVal As String
- Dim newVal As String
- If Target.Count > 1 Then GoTo exitHandler
- On Error Resume Next
- Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
- On Error GoTo exitHandler
- If rngDV Is Nothing Then GoTo exitHandler
- If Intersect(Target, rngDV) Is Nothing Then
- 'do nothing
- Else
- Application.EnableEvents = False
- newVal = Target.Value
- Application.Undo
- oldVal = Target.Value
- Target.Value = newVal
- If oldVal = "" Then
- Else
- If newVal = "" Then
- Else
- If Target.Column <> 2 And Target.Column <> 3 And Target.Column <> 5 Then
- Dim oldValArray
- oldValArray = Split(oldVal, ",")
- Dim exitVal As Boolean
- exitVal = False
- Dim i As Integer
- Dim resultVal As String
- For i = 0 To UBound(oldValArray)
- If oldValArray(i) = newVal Then
- exitVal = True
- Else
- If resultVal = "" Then
- resultVal = oldValArray(i)
- Else
- resultVal = resultVal & "," & oldValArray(i)
- End If
- End If
- Next
- If exitVal = False Then
- If oldVal = newVal Then
- Target.Value = resultVal
- Else
- Target.Value = resultVal & "," & newVal
- End If
- Else
- Target.Value = resultVal
- End If
- End If
- End If
- End If
- End If
- exitHandler:
- Application.EnableEvents = True
- End Sub
转载自:https://www.cnblogs.com/boosasliulin/p/5970120.html
Excel怎么下拉框多选的更多相关文章
- jquery实现下拉框多选
一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 <!DOCTYPE html PUBLIC & ...
- combobox中动态加入几个checkbox,实现下拉框多选
combobox中动态加入几个checkbox,实现下拉框多选,将一个checkbox选中时其内容就会在combobox中显示出来,将另一个checkbox选中时其内容会跟在第一个checkbox的内 ...
- vue实现下拉框全选和输入匹配
实际项目中的一个需求: 点击文本框,弹出带有复选框的选项,然后获取选中项的数据,传给后面的一个功能.在文本框输入内容,也会动态的匹配下拉列表,并且列表带有全选功能. 朴素的效果图: 我选择了用vue实 ...
- 使用poi解决导出excel内下拉框枚举项较多的问题
废话少说,直接上代码: package com.fst.attachment.controller; import java.io.FileOutputStream; import org.apach ...
- easyui combotree下拉框多选赋值
发现jquery.easyui.min.js 1.3.4版本的用setValues给多选下拉框赋值不成功,只能用1.3.1版本的 Html代码: <input id="ProductL ...
- checkboxlist 下拉框多选功能 ,模拟dropdownlist带复选框效果
前台代码 01.<html xmlns="http://www.w3.org/1999/xhtml"> 02.<head runat="server&q ...
- ops-web运维平台-create.jsp-mootools下拉框-复选框
create.jsp页面的,body部分 <body onload="Page.init('${pageError}','${pageMessage}',${isSubmit},tru ...
- 表id关联数据获取至页面,制作下拉框多选进行数据多项获取(字段处理)
这周完成了一张表单,重点碰到以下问题: 1.freemaker获取年份的type值取year,类型直接为Long,传至后台和获取数据不需要转换: 2.freemaker获取日期type值为date, ...
- angularJs实现下拉框多选
话不多说,直接上干货. 肯定需要下拉选插件.必须引入的是 注意 先后顺序 select2.css select2-bootstrap.css select2.min.js angular.min. ...
随机推荐
- [jQ]jQuery显式操作Checkbox,并用数组存储关联值的方案
---------------------------------------------------------------------------------------------------- ...
- javascript:getElementsByName td name
问题: 今天写动态生成HTML表格的时候需要用到统计td内的数据,在生成的时候设置了td的name属性,但是document.getElementsByName("tdname&quo ...
- java-学习2
第一节 Java语言介绍 1.Java的起源 Oak-->Java 交互式操作智能家居 2.Java的发展 Java1.0 Java1.2 JavaSE :Java平台标准版 ...
- Java NIO Files
Java NIO Files Files.exists() Files.createDirectory() Files.copy() Overwriting Existing Files Files. ...
- Java(8)中List的遍历方式
============Java8之前的方式==========Map<String, Integer> items = new HashMap<>();items.put(& ...
- javase中javax源码下载地址
OracleJDK 和 OpenJDK 源码都可以参考. OpenJDK 源码下载 http://hg.openjdk.java.net/jdk7/jdk7/jdk/file 我主要是想下载 java ...
- Centos新增group和user
新增group groupadd hadoop 新增用户 useradd -d /usr/hadoop -g hadoop -m hadoop 设置密码 passwd hadoop
- fiddler对浏览器、app抓包及证书安装(转)
http://blog.csdn.net/u011608531/article/details/50838227 1.fiddler对浏览器抓包 1.1 对浏览器的http的抓包 Capturing开 ...
- pm2-zabbix 安装与配置
官方GITHUB路径 https://github.com/greatcare/pm2-zabbix 环境要求,zabbix-agent zabbix-sender需要安装 npm安装要求 npm i ...
- vue element upload上传、清除等
如果项目中可以使用file-list,那我们可以点击file-list删除文件列表: 有时候项目中是不要这个文件列表的,所以在上传成功以后,文件列表一直存在,要重新上传就必须刷新页面,所以我们需要手动 ...