WPS Excel中配置下拉多选(VBA)
网上找到两种方案,一种利用数据选择其他单元格,也就是在其他单元格建数据。需求是模板,不合适
这里我用的VBA,踩了挺多坑,详细说下
- 首先更新WPS为最新版,确保可用VBA和JSA 确定使用VBA还是JSA,两种语法不同
- VBA较老,语法可靠些,推荐(本文使用VBA)
- JSA为新引入JS,但支持较少,不太推荐
- 如选择VBA,请跳转至以下链接查看详情。若为JSA,请另寻方案
VBA配置借鉴了csdn一篇博客,以下为相关链接:
CSDN-指南:https://blog.csdn.net/qq_36448758/article/details/134162812
金山文档-多选方案:https://www.kdocs.cn/article/2C6CD5AA30.html
以下为打开方式


默认为空,先创建一个新的宏再编辑

此处为VBA编辑,注意在红色框处写入代码



若不生效的话再切回WPS点击运行

最后附上版本图

以下为VBA代码
不选择值时显示空,选址值后替换空,用、间隔
1 Private Sub Worksheet_Change(ByVal Target As Range)
2 Dim oldVal As String
3 Dim newVal As String
4 Dim delimiter As String
5 delimiter = "、" ' 设置分隔符
6
7 ' 限定只在B列进行处理
8 If Not Intersect(Target, Me.Range("B:B")) Is Nothing Then
9 If Target.Count > 1 Then Exit Sub
10
11 On Error Resume Next
12 Application.EnableEvents = False
13 newVal = Trim(Target.Value) ' 去除新值两侧空格
14 Application.Undo
15 oldVal = Trim(Target.Value) ' 去除旧值两侧空格
16
17 If oldVal <> "" And newVal <> "" Then
18
19 ' 如果最终值为空,保持为空
20 If InStr(Target.Value, "空") Then
21 Target.Value = newVal ' 移除新值(如果它出现在开头)
22 Else
23 If InStr(1, oldVal, newVal) > 0 Then
24 ' 移除新值及其前面的分隔符
25 Target.Value = Replace(oldVal, delimiter & newVal, "")
26 Target.Value = Replace(Target.Value, newVal, "") ' 移除新值(如果它出现在开头)
27 Else
28 ' 新值不在旧值中,则添加它
29 If oldVal <> "" Then
30 Target.Value = oldVal & delimiter & newVal
31 Else
32 Target.Value = newVal
33 End If
34 End If
35 End If
36 End If
37
38 ' 清理多余的分隔符
39 Target.Value = Application.Trim(Target.Value) ' 去掉两侧空格
40 If Left(Target.Value, Len(delimiter)) = delimiter Then
41 Target.Value = Mid(Target.Value, Len(delimiter) + 1)
42 End If
43 If Right(Target.Value, Len(delimiter)) = delimiter Then
44 Target.Value = Left(Target.Value, Len(Target.Value) - Len(delimiter))
45 End If
46
47 ' 如果最终值为空,保持为空
48 If Target.Value = "" Then
49 Target.Value = "空" ' 设置为一个空字符串
50 ElseIf Target.Value = "0" Then
51 Target.Value = "空" ' 设置为一个空字符串
52 ElseIf Target.Value = 0 Then
53 Target.Value = "空" ' 设置为一个空字符串
54 End If
55 End If
56
57 exitHandler:
58 Application.EnableEvents = True
59 End Sub

WPS Excel中配置下拉多选(VBA)的更多相关文章
- Excel中添加下拉框
数据->数据验证->数据验证 设置—>允许下拉框中选择序列,来源中写下拉选项,每个选项之间用逗号隔开
- excel中添加下拉候选
这里简单记录下如何在Excel2013中添加下拉候选. 首先有个思路是,下拉候选也就意味着数据被限制在一个范围之内,因此应该联想到数据验证相关的设置. 选中单列或单元格,在[数据]下的[数据验证]中选 ...
- Jenkins配置下拉菜单联动效果
在使用Jenkins集成时,经常需要配置一些环境信息,由于测试.线上.预发布需要切换环境和域名,需要在Jenkins中配置下拉菜单联动效果. 首先选择参数化构建过程,然后首先配置环境,环境分为:测试环 ...
- 品优购商城项目(二)AngularJS、自动代码生成器、select2下拉多选框
品优购商城想项目第二阶段 AngularJS.自动代码生成器.select2下拉多选框 完成了课程第三天.第四天的的任务. 1.学习了AngularJs前端的mvc分层思想,js部分分成control ...
- 我的第一个jquery插件:下拉多选框
<!DOCTYPE HTML> <html> <head> <title> New Document </title> <meta n ...
- Jqure实现下拉多选
Web ") { try { ...
- multiSelect 下拉多选插件
multiSelect是一款很好用的下拉多选插件,可以在下拉框中实现多选框,全选及取消全选等方法.使用方法:1.引用 multiSelect.css及 multiSelect.js.下载地址 http ...
- Easyui datagrid combobox输入框下拉(取消)选值和编辑已选值处理
datagrid combobox输入框下拉(取消)选值和编辑已选值处理 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求场景 如下,在datagri ...
- EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用
EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用 在不想变的单元格前加$符号(列标和列数,两个都要加$),变成绝对引用,默认情况是相对引用 L4固定不变的方式:$L$4 M4固定不 ...
- 使用jQuery为文本框、单选框、多选框、下拉框、下拉多选框设值及返回值的处理
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- 痞子衡嵌入式:探析i.MXRT1050在GPIO上增加RC延时电路后导致边沿中断误触发问题(上篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1050在GPIO上增加RC延时电路后导致边沿中断误触发问题探析. 前段时间有一个 RT1052 客户反馈了一个有趣的问题, ...
- 通过JUnit源码分析学习编程的奇技淫巧
打开 Maven仓库,左边选项栏排在第一的就是测试框架与工具,今天的文章,V 哥要来聊一聊程序员必备的测试框架JUnit 的源码实现,整理的学习笔记,分享给大家. 有人说,不就一个测试框架嘛,有必要去 ...
- Python 加载 TensorFlow 模型
1.SavedModel和HDF5加载TensorFlow模型 为了加载一个TensorFlow模型,我们首先需要明确模型的格式.TensorFlow支持多种模型格式,但最常见的两种是SavedMod ...
- elementui二维表动态渲染
elementUI如何动态渲染二维表,动态渲染表格的列,例如下图: 代码: <div id="app"> <template> <el-table : ...
- 构建 OpenWrt
OpenWrt 是一款路由器操作系统.如果你想要给自己的路由器安装 OpenWrt 的话,一般来说使用别人已经构建好的 OpenWrt 固件就够用了.当然如果你闲得没事干,那么也可以自己构建固件. P ...
- 新一代监控神器Prometheus+Grafana介绍及使用
一.介绍 1.什么是Prometheus? 普罗米修斯是一个开源的系统监控及报警工具,在2016年加入了 Cloud Native Computing Foundation,是继Kubernetes之 ...
- WKCTF RE
WKCTF so_easy 安卓逆向,关键的check逻辑都在native层里面 主要是很多层的异或操作 除了Z3和爆破想不到其他方法了 from z3 import * src = [ 0xAE, ...
- windows server 2019 IIS网站属性上没有asp.net标签 ,aspnet_regiis -i 不能安装
在新的服务器版本已经不能通过 aspnet_regiis -i安装了,可以通过以下语句完成: dism /online /enable-feature /featurename:IIS-ASPNET4 ...
- 一个SQL查询走索引时涉及到的最左前缀原则
一个SQL查询走索引时涉及到的最左前缀原则 在讲解最左前缀原则之前,先复习一下MySQL索引的重要基础知识(下面都将基于InnoDB存储引擎下的索引规则) 索引类型 主键索引 InnoDB存储引擎使用 ...
- [学习笔记] 2-SAT
引入 有 \(n\) 个变量 \(x_1 \cdots x_n\),每个变量的取值范围为 \(\{0,1\}\),另有 \(m\) 个条件,每个条件都是对其中两个变量的取值限制,形如要么 \(x_i ...