【WPS JSA】选择写入枚举字典

大家好,我是宽吻鳄。这里是「宽吻鳄画表勒格记」——专注WPS表格硬核技巧,每期干货,让你的工作效率直线飙升!欢迎关注,咱们一起解锁更多高效技能!
在日常工作中,根据要求或需求不同,我们经常要设计不同样式的工作表,工作表的基本元素如单位全称、单位简称、预算代码、单位编码、各种类别或类型、行政区域、及不同级次文本编码等等会常用的,一种是用到时到处找,整理着用;还有一种是整理好枚举字典,随时用。后一种方便很便捷,每一次使用的也标准,特别是涉及表间提取数据或汇总计算时作用就更明显了。
今天,重点介绍用JSA代码选择写入枚举字典。可下载示例资料,试一试是否好用,欢迎在评论区留言,一起学习探讨。
请记住一个WPS表格应用原则:凡是涉及批量或重复性操作,JSA(JavaScript for Application)宏代码都能帮你一键完成,秒速搞定!
要想活干得快,漂亮,还不加班,就来学习WPS JSA宏编程!磨刀不误砍柴功,打铁还需自身硬。
来吧,直接上代码。
【WPS JSA】代码:
function 选择写入枚举字典() {try {var sheet = Application.ActiveSheet;var sel = Application.Selection;// 处理选区可能为多个区域的情况(如按住Ctrl点选),始终取第一个区域的左上角var startCell = null;if (sel && sel.Cells) {startCell = sel.Cells(1, 1); // 多区域选区} else if (sel && sel.Row) {startCell = sel; // 单个单元格} else {MsgBox("请先选中一个单元格作为起点。", 0, "提示");return;}var row = startCell.Row;var column = startCell.Column;// =数据定义var 一级编码 = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十"];var 二级编码 = ["㈠", "㈡", "㈢", "㈣", "㈤", "㈥", "㈦", "㈧", "㈨", "㈩"];var 三级编码 = ["⒈", "⒉", "⒊", "⒋", "⒌", "⒍", "⒎", "⒏", "⒐", "⒑"];var 四级编码 = ["⑴", "⑵", "⑶", "⑷", "⑸", "⑹", "⑺", "⑻", "⑼", "⑽"];var 五级编码 = ["①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩"];var 预算代码 = ["666000", "666001", "666002", "666003", "666004", "666005"];var 单位全称 = ["吉林省JSA宏研究局","吉林省JSA宏研究局第901所","吉林省JSA宏研究局第902所","吉林省JSA宏研究局第903所","吉林省JSA宏研究局第904所","吉林省JSA宏研究局第905所"];var 数据选项 = [一级编码, 二级编码, 三级编码, 四级编码, 五级编码, 预算代码, 单位全称];var 选项名称 = ["一级编码", "二级编码", "三级编码", "四级编码", "五级编码", "预算代码", "单位全称"];// 第一步:用 InputBox 选择数据类型var promptMsg = "请输入数字选择数据类型(1-" + 选项名称.length + "):\n\n";for (var i = 0; i < 选项名称.length; i++) {promptMsg += (i + 1) + " = " + 选项名称[i];// 每3个换行,让显示更整齐if ((i + 1) % 3 === 0 && i < 选项名称.length - 1) {promptMsg += "\n";} else if (i < 选项名称.length - 1) {promptMsg += ";";}}promptMsg += "\n\n0 = 取消操作";var choiceStr = InputBox(promptMsg, "枚举字典数据写入", "1");// 用户点击"取消"或输入为空时if (choiceStr === "" || choiceStr === undefined || choiceStr === null) {MsgBox("操作已取消", 0, "提示");return;}var idx = parseInt(choiceStr);if (isNaN(idx) || idx < 1 || idx > 选项名称.length) {MsgBox("输入无效,请输入 1 到 " + 选项名称.length + " 之间的数字。", 0, "错误");return;}idx = idx - 1;var data = 数据选项[idx];var name = 选项名称[idx];// 第二步:确认选择var confirmResult = MsgBox("您选择了:【" + name + "】\n" +"共 " + data.length + " 条数据\n\n" +"预览前3条:\n" +data.slice(0, 3).join("、") + "\n\n" +"点击【是】继续写入\n" +"点击【否】取消操作",4, // 4 = 是/否按钮"确认选择");if (confirmResult === 7) { // 7 = 否MsgBox("操作已取消", 0, "提示");return;}// 第三步:选择写入方向var dirResult = MsgBox("请选择写入方向:\n\n" +"点击【是】→ 纵向写入(向下)\n" +"点击【否】→ 横向写入(向右)\n" +"点击【取消】→ 取消操作",3, // 3 = 是/否/取消按钮"写入方向");if (dirResult === 2) { // 2 = 取消MsgBox("操作已取消", 0, "提示");return;}// 第四步:执行写入if (dirResult === 6) { // 6 = 是,纵向写入for (var i = 0; i < data.length; i++) {sheet.Cells(row + i, column).Value2 = data[i];}MsgBox("✅ 写入完成!\n\n" +"数据类型:" + name + "\n" +"写入位置:从第 " + row + " 行第 " + column + " 列开始向下\n" +"写入条数:" + data.length + " 条",0,"完成");} else if (dirResult === 7) { // 7 = 否,横向写入for (var i = 0; i < data.length; i++) {sheet.Cells(row, column + i).Value2 = data[i];}MsgBox("✅ 写入完成!\n\n" +"数据类型:" + name + "\n" +"写入位置:从第 " + row + " 行第 " + column + " 列开始向右\n" +"写入条数:" + data.length + " 条",0,"完成");}} catch (e) {MsgBox("❌ 发生错误:\n" + e.message + "\n\n错误行号:" + (e.line || "未知"), 0, "错误");}}
往期内容推荐:

夜雨聆风