EXCEL下拉框设置多选

news/2024/9/23 3:32:01/

我这里是微软office的版本,其它版本大同小异:
1、数据校验入口
这里写图片描述
2、设置数据
这里写图片描述
3、sheet页右击查看代码
这里写图片描述
4、复制下面代码进去:
这里写图片描述
5、效果如下:
这里写图片描述

Option ExplicitSub Worksheet_Change(ByVal Target As Range)
'让数据有效性选择 可以多选,重复选
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
If Target.Count > 1 Then GoTo exitHandlerOn Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandlerIf rngDV Is Nothing Then GoTo exitHandlerIf 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 IfexitHandler:
Application.EnableEvents = True
End Sub

补充指定列,不可重复选代码片段

Option ExplicitSub Worksheet_Change(ByVal Target As Range)
'让数据有效性选择 可以多选,重复选
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
If Target.Count > 1 Then GoTo exitHandlerOn Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandlerIf rngDV Is Nothing Then GoTo exitHandlerIf Intersect(Target, rngDV) Is Nothing Then'do nothing
ElseApplication.EnableEvents = FalsenewVal = Target.ValueApplication.UndooldVal = Target.ValueTarget.Value = newValIf Target.Column = 17 Then '这里规定好哪一列的数据有效性是多选的,A列是第1列,依次类推,如3就是C列,7就是G列If oldVal = "" Then'do nothingElseIf newVal = "" Then'do nothingElseIf InStr(1, oldVal, newVal) <> 0 Then  '重复选择视同删除If InStr(1, oldVal, newVal) + Len(newVal) - 1 = Len(oldVal) Then '最后一个选项重复Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 1)ElseTarget.Value = Replace(oldVal, newVal & ",", "") '不是最后一个选项重复的时候处理逗号End IfElse '不是重复选项就视同增加选项Target.Value = oldVal & "," & newVal
'      NOTE: you can use a line break,
'      instead of a comma
'      Target.Value = oldVal _
'        & Chr(10) & newValEnd IfEnd IfEnd IfEnd If
End IfexitHandler:
Application.EnableEvents = True
End Sub

http://www.ppmy.cn/news/825040.html

相关文章

Webpack5 SourceMap

文章目录 一、SourceMap有什么用二、怎么使用SourceMap三、需要注意的点 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、SourceMap有什么用 为什么需要SourceMap 开发时我们运行的代码是经过 Webpack 编译压缩合并之后的&#xff0c;这样的目的是…

office中excel设置下拉框多选

我参照了这篇文章 https://www.php.cn/topic/excel/444717.html 这篇文章整体写得不错&#xff0c;但是有些小瑕疵 问题1&#xff1a;在模块1中保存。 这里并没有说清楚 具体是&#xff1a;VBA编辑器中--插入---模块 然后复制以下代码 Public ReLoad As Boolean 开关listb…

excel系列【下拉项二选一】

1 打开wps表格&#xff0c;选中需要增加二选一的单元格 2 选择数据菜单栏下的有效性 3 选择允许下方的序列选项 4 在来源下的输入框内填上是和否&#xff0c;中间要用英文的都好隔开&#xff0c;然后点击确定。例如输入√、&#xff1b;是、否。 5 在选中的单元格内就出现…

go-zero微服务实战——基本环境搭建

简介 项目架构来源于go-zero实战&#xff1a;让微服务Go起来。此对该项目有所删减&#xff0c;相对简单适合初学者。 省去了项目中每个服务占用独立docker的过程&#xff0c;省略了docker-compose的构建过程。每个服务是一个独立的程序不依赖与容器。 环境搭建 安装goctl …

iPhone苹果手机桌面上快速记录笔记的步骤

现在越来越多的人喜欢上记笔记&#xff0c;因为记笔记是一种提升效率和组织思维的重要方式。随着移动设备的普及&#xff0c;手机逐渐成为我们生活中不可或缺的工具之一。在手机上记笔记就成为一种很快捷的记录方式&#xff0c;可以让我们随时随地记录灵感和重要信息。在众多记…

小提琴的pHP制作视频,我想自己制作一把小提琴

从枪炮玫瑰乐队到TaylorSwift、巴赫再到星球大战&#xff0c;英语教授NealPhillips是一位兴趣广泛的音乐爱好者。而当涉及到乐器时&#xff0c;他的口味也同样不拘一格。尽管一些古典音乐家会对一切非手工木质小提琴嗤之以鼻&#xff0c;但是Phillips却会非常自豪地在自己授课的…

中石化卖咖啡报:产品体验报告 | 网易云音乐,体验一个“社交+音乐+直播”的动听世界

本文来自CCTV5直播【www.cctv5zb.net】:原文地址 www.cctv5zb.net/Article/137532.html 转载注明来源中石化卖咖啡 编辑导语&#xff1a;作为一名音乐爱好者&#xff0c;体验音乐产品是一件幸福的事&#xff0c;但现在的音乐软件不是只局限于音乐。本文带你走进网易云音乐&…