网上找到两种方案,一种利用数据选择其他单元格,也就是在其他单元格建数据。需求是模板,不合适

这里我用的VBA,踩了挺多坑,详细说下

  1.   首先更新WPS为最新版,确保可用VBA和JSA  确定使用VBA还是JSA,两种语法不同
    1.   VBA较老,语法可靠些,推荐(本文使用VBA)
    2.   JSA为新引入JS,但支持较少,不太推荐
  2.   如选择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)的更多相关文章

  1. Excel中添加下拉框

    数据->数据验证->数据验证 设置—>允许下拉框中选择序列,来源中写下拉选项,每个选项之间用逗号隔开

  2. excel中添加下拉候选

    这里简单记录下如何在Excel2013中添加下拉候选. 首先有个思路是,下拉候选也就意味着数据被限制在一个范围之内,因此应该联想到数据验证相关的设置. 选中单列或单元格,在[数据]下的[数据验证]中选 ...

  3. Jenkins配置下拉菜单联动效果

    在使用Jenkins集成时,经常需要配置一些环境信息,由于测试.线上.预发布需要切换环境和域名,需要在Jenkins中配置下拉菜单联动效果. 首先选择参数化构建过程,然后首先配置环境,环境分为:测试环 ...

  4. 品优购商城项目(二)AngularJS、自动代码生成器、select2下拉多选框

    品优购商城想项目第二阶段 AngularJS.自动代码生成器.select2下拉多选框 完成了课程第三天.第四天的的任务. 1.学习了AngularJs前端的mvc分层思想,js部分分成control ...

  5. 我的第一个jquery插件:下拉多选框

    <!DOCTYPE HTML> <html> <head> <title> New Document </title> <meta n ...

  6. Jqure实现下拉多选

    Web ")                 {                     try                     {                          ...

  7. multiSelect 下拉多选插件

    multiSelect是一款很好用的下拉多选插件,可以在下拉框中实现多选框,全选及取消全选等方法.使用方法:1.引用 multiSelect.css及 multiSelect.js.下载地址 http ...

  8. Easyui datagrid combobox输入框下拉(取消)选值和编辑已选值处理

    datagrid combobox输入框下拉(取消)选值和编辑已选值处理 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3   需求场景 如下,在datagri ...

  9. EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用

    EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用 在不想变的单元格前加$符号(列标和列数,两个都要加$),变成绝对引用,默认情况是相对引用 L4固定不变的方式:$L$4 M4固定不 ...

  10. 使用jQuery为文本框、单选框、多选框、下拉框、下拉多选框设值及返回值的处理

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. Codeforces Round 911 (Div. 2) D

    Codeforces Round 911 (Div. 2) D D. Small GCD 题意 定义\(f(a,b,c)\)为\(a,b,c\)中较小两个数的\(gcd\),给定数组\(a_{1... ...

  2. 快手 内推码:TYORVzmsw 秋招 应届生/实习生 真正本人内推 已有多人在我内推之后,接连顺利通过了HR筛选、用人部门筛选、面试!

    内推码:TYORVzmsw 校园招聘岗位列表:https://campus.kuaishou.cn/#/campus/jobs?code=TYORVzmsw 真正的本人内部推荐! 已有多人在我内推之后 ...

  3. 十五张图带你快速入门 shardingsphere-proxy

    Apache ShardingSphere 是一款分布式的数据库生态系统,它包含两大产品: ShardingSphere-Proxy ShardingSphere-JDBC 很多同学对于 Shardi ...

  4. python的dir()函数

    dir()函数不带参数时,返回当前范围内的变量.方法和定义的类型列表:

  5. 计算机二级c语言学习总结

    咱就是说,还有一周多久要进行计算机二级考试了,咱开始在b站上找一些视频进行学习.毕竟咱c语言实战经验自认为是完全足够应付计算机二级了,所以,咱现在的学习目标是先把计算机二级的大概知识过一遍,进行查漏补 ...

  6. draw.io 使用自定义字体

    draw.io 是我最常用的作图工具.然而,draw.io 支持的字体很少,只支持少数英文字体.不过好在 draw.io 提供了自定义选项,我们可以填入自己想要使用的字体的名称,然后 draw.io ...

  7. APT 使用

    使用 Ubuntu 包搜索器 apt 命令 功能 apt install 安装软件包 apt remove 移除软件包 apt purge 移除软件包及配置文件 apt update 刷新存储库索引 ...

  8. NET Core 多身份校验与策略模式

    背景需求:   系统需要对接到XXX官方的API,但因此官方对接以及管理都十分严格.而本人部门的系统中包含诸多子系统,系统间为了稳定,程序间多数固定Token+特殊验证进行调用,且后期还要提供给其他兄 ...

  9. uniapp中,getApp()返回的实例到底是什么?为什么getApp()返回的实例无法访问vuex的$store

    按uniapp官方手册中说,getApp()函数用于获取当前应用实例.当前应用,也就是说当前应用程序.因为getApp()返回的实例可以用于访问app.vue中的globaldata,因此这个当前应用 ...

  10. 【图文教程】Centos 7下安装Hadoop

    环境说明: 系统:Centos7 在VM中安装的 hadoop版本:2.7.7 JDK:1.8 注意:Hadoop需要Java环境的.记得安装Java环境 PS:Centos JDK安装  mkdir ...