wps实现多选下拉框3种方案

news/2025/3/18 18:25:51/文章来源:https://www.cnblogs.com/hdwang/p/18779512

一、js宏listbox控件方案

优点:

1.wps默认宏环境,无需安装VBA环境

2.下拉框位置定位准确

缺点:

1.下拉框数据无法代码初始化,只能使用区域设置

2.一次只能选一个,多次选择实现多选

配置:

 

 

代码:

function ListBox1_Click()
{var cellValue = new String(ActiveCell.Value2);var listVal = ListBox1.Value;if(cellValue=="undefined"){ActiveCell.Value2=listVal;}else{if(!cellValue.includes(listVal)){ActiveCell.Value2=cellValue+","+listVal;}else{ActiveCell.Value2= removeCharFromList(cellValue,listVal);}}}// 删除字符串中的某个子串
function removeCharFromList(str, charToRemove) {return str.split(',').filter(char => char !== charToRemove).join(',');
}function Workbook_SheetSelectionChange(Sh, Target)
{if(ActiveCell.Column==2 && ActiveCell.Row>1){ListBox1.Top=ActiveCell.Top+ActiveCell.Height;ListBox1.Left=ActiveCell.Left+ActiveCell.Width;ListBox1.Width=ActiveCell.Width;ListBox1.Visible=true;}else{ListBox1.Visible=false;}
}

 

 

二、js宏listbox+form窗体方案

优点:

1.wps默认宏环境,无需安装VBA环境

2.下拉框数据可以代码初始化,无需区域设置

缺点:

1.下拉框位置无法精准定位

2.一次只能选一个,多次选择实现多选

代码:

//窗体初始化
function UserForm1_Initialize()
{//下拉框初始化选项var items = ["东", "南", "西", "北"];for (var i = 0; i < items.length; i++) {UserForm1.ListBox1.AddItem(items[i],i);}
}//选区改变事件
function Workbook_SheetSelectionChange(Sh, Target)
{if(ActiveCell.Column==2 && ActiveCell.Row>1){//显示窗体
        UserForm1.Show();    }else{//隐藏窗体
        UserForm1.Hide();}
}//下拉框点击事件
function UserForm1_ListBox1_Click()
{//获取单元格的值var cellVal = new String(ActiveCell.Value2);//获取下拉框选中的值var listBoxVal = UserForm1.ListBox1.Value;if(cellVal=="undefined"){//第一次选中ActiveCell.Value2 = listBoxVal;}else{if(!cellVal.includes(listBoxVal)){//添加选项ActiveCell.Value2 = cellVal+","+listBoxVal;}else{//删除选项ActiveCell.Value2 = removeCharFromList(cellVal,listBoxVal);}}UserForm1.Hide();//选择其它单元格,模拟失焦var adderss = "C"+ActiveCell.Row;ActiveSheet.Range(adderss).Select(); 
}// 删除字符串中的某个子串
function removeCharFromList(str, charToRemove) {return str.split(',').filter(char => char !== charToRemove).join(',');
}

 

 

三、vb宏listbox方案

优点:

1.支持多选,一次选多个

2.下拉框位置定位准确

缺点:

1.需要安装VBA环境

配置:

 

代码:

Private Sub ListBox1_Change()If Reload Then Exit Sub 'ListBox1改变事件For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then t = t & "," & ListBox1.List(i)
NextActiveCell = Mid(t, 2)End SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)With ListBox1'第 2 列 且 单元格大于 1,因为表头的字段不需要进行多选If ActiveCell.Column = 2 And ActiveCell.Row > 1 Thent = ActiveCell.ValueReload = True '如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。For i = 0 To .ListCount - 1 '根据活动单元格内容修改列表框中被选中的内容If InStr(t, .List(i)) Then.Selected(i) = TrueElse.Selected(i) = FalseEnd IfNextReload = False.Top = ActiveCell.Top + ActiveCell.Height '以下语句根据活动单元格位置显示列表框.Left = ActiveCell.Left.Width = ActiveCell.Width.Visible = TrueElse.Visible = FalseEnd IfEnd With
End Sub

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901049.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 离线安装与介绍

一、安装 1.1 离线安装准备源代码包 #从项目的官方网站或代码仓库(如 GitHub)下载源代码 wget https://nginx.org/download/nginx-1.24.0.tar.gz #下载 tar -xzvf nginx-1.24.0.tar.gz #解压 cd nginx-1.24.0安装编译工具和依赖项 #正则表达式库(pcre-devel)、 数…

安装U8 IEWebControls 提示“The specified path http://localhost/webctrl client is unavailable.

安装U8 插件 IEWebControls 提示“The specified path "http://localhost/webctrl client is unavailable. The InternetInformation Server might not be running or the path exists and is redirected to anothelmachine. Please check the status of this virtual di…

VISI 2023下载与安装教程

‌Vero VISI 2023更新主要包括以下几个方面‌:‌CAD分析功能‌:新增了拔模分析功能,该功能扩展了底切和辅助功能阴影模式集,可以对拔模角度进行动态分析。用户可以通过图形工具栏上的颜色或数字标签来更改每个范围的颜色和角度值‌。 ‌维修功能‌:在“验证”命令中集成了…

中电金信:2025金融高质量发展指南:这两篇权威文件必读!

近日,国务院办公厅及权威机构接连发布两份重要文件,为金融业锚定2025年发展方向提供了清晰指引。无论是顶层设计的战略布局,还是前沿趋势的深度洞察,这两份文件已成为行业必读。3月5日,国务院办公厅印发《关于做好金融“五篇大文章”的指导意见》(以下简称《指导意见》)…

express 基本用法

启动一个http服务.import express from express;const app = express() //express 是个函数app.listen(3000, () => {console.log("服务器启动成功,3000"); }); get 和post接口//get //api地址,回调函数req是请求,res是响应 app.get("/get", (req, re…

Git 合并时出现 Please enter a commit message to explain why this merge is necessary 问题解决

1. 报错现象 2. 报错文字merge brach "dev" # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with # will be ignored, and an empty message a…

3.18 学习记录

将仓库管理系统的前端框架使用vue3搭建完成,修改了后端的部分bug,实现了登录功能,其他页面功能还未完成

MySQL 常用储存引擎

1一.存储引擎概述 定义‌:存储引擎是MySQL用于管理数据存储、查询、事务处理的底层组件。 ‌核心作用‌:决定数据如何存储、索引如何组织、事务是否支持等。 点击查看mysql逻辑架构概述 查看数据库所支持的存储引擎SHOW ENGINES; Engine: 表示存储引擎的名称 Support: 表示…

巧用输出变量,提升Dolphinscheduler工作流灵活性和可维护性

输出变量是 DolphinScheduler 任务调度中实现数据流动与任务协作的核心机制,通过显式定义和传递参数,解决了跨节点数据共享、优先级冲突等问题,同时支持复杂流程编排(如子流程、条件分支)。合理使用输出变量能显著提升工作流的灵活性和可维护性。本文将介绍 DolphinSchedu…

3.18 关系

1.1 笛卡尔积 序偶/元组 是有顺序的1.2 笛卡尔积与关系关系就两种:集合A上的二元关系/集合A到集合B的二元关系关系是笛卡尔积的子集 1.3 特殊关系

Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手

Spring AI Alibaba 是一款 Java 语言实现的 AI 应用开发框架,用于加速和简化 Java 开发者的 AI 应用开发,定义 Spring 框架下的 AI 应用开发模式。本项目基于 Pivotal 公司开源的 Spring AI 开源项目构建,突出 Spring AI 与阿里云开源/商业生态的集成与最佳实践,集成范围涉…

干锅菜单

100001、 100002、 100003、 100004、 100005、 100006、 100007、 100008、本人前端水平有限,写的知识点可能有谬误,欢迎留言指正,如果看到,我将第一时间回复。感谢支持!