WPS生成工资条,JSA宏模板!



Lv.3 优质创作者
今天主要有点,实战的WPS-JS宏代码,本次实战案例是根据工资表生成工资条,主要熟悉一下JS代码,感受一下和VBA代码的区别!
▍效果预览
下面动画演示一下JSA宏实现的工资条效果,代码基本OK!下面我们还是带大家看一下JSA的实现方式及和VBA中的一些差别!
▼ 动画演示
▍代码解析
定义名称基本现代的语法常用的就是const 和 let,快速区别使用哪一个,就是看这个变量后续是否发生变化,前者“不变”!
然后核心的对象API,90%基本户和VBA一样,只是严格区分大小写!
比如CurrentRegion、ActiveSheet 是不是都非常熟悉!
在JSA宏中,Msgbox也可以继续使用,通用也可以使用JS中alert,但是没有Mgbox功能丰富,如果只是简单提示可以用一下!
其他if语法等就要去学习一下JS语法了,基本都是{} 风格!
return属于VBA中没有的,但是类似Function中的 exit Function语法,表示返回结果,如果单用,相当于退出了!
下面的代码核心就是获取一下要处理的工作表对象,赋值给ws,方便调用,获取要处理的行数和列数,提示一下用户操作不可撤销,做好数据备份管理!
代码的第二部分是核心,基本就是一个for循环遍历每一行,插入标题和一行空行
注意下for语法和VBA肯定是完全不同的,for(初始值;判断;步长)
这里i--,相当于step -1,也就是倒序遍历!
你会发现如果你有VBA基础,99%的Excel对象模型API都不用重新学习!
核心放在学习JS基础知识即可!
▍源码分享
/*
* 功能:将工资汇总表自动转换为工资条格式
*/
function 工资条自动生成() {
const ws = ActiveSheet;
const dataRange = ws.Range("A1").CurrentRegion;
const totalRows = dataRange.Rows.Count;
const totalCols = dataRange.Columns.Count;
if (totalRows < 3) {
MsgBox("数据不足!\n需要至少1行表头 + 2行数据才能生成工资条。", 48, "提示");
return;
}
const confirm = MsgBox(
"即将为 " + (totalRows - 1) + " 名员工生成工资条\n\n⚠" +
"操作不可撤销,建议先备份文件\n\n是否继续?",
36,
"确认生成"
);
if (confirm !== 6) return; // 用户点击"否"
Application.ScreenUpdating = false;
// 获取表头行范围(第1行)
const headerRange = ws.Rows(1);
// 从最后一条数据往前处理(避免插入行导致行号错位)
for (let i = totalRows; i >= 3; i--) {
ws.Rows(i).Insert(xlShiftDown); // 插入空行(分隔用)
ws.Rows(i).Insert(xlShiftDown); // 再插入一行放表头
headerRange.Copy(ws.Rows(i)); // 复制表头到插入的行
}
// 自动调整列宽
const lastCol = String.fromCharCode(64 + totalCols);
ws.Range("A1:" + lastCol + "1").Columns.AutoFit();
Application.ScreenUpdating = true;
MsgBox(
"工资条生成完成!\n共生成 " + (totalRows - 1) + " 张工资条",
64,
"完成"
);
}今天的内容就到这里,更多JSA实战代码会陆续整理到JSA系列教程的实战部分!
▍个人热帖合集
链接 | 提炼标题 |
一句话构建Excel加载宏插件 | |
WPS多维表单选项攻略 | |
WPS AI两分钟搞定整理 | |
WPS函数重大更新汇总 | |
Excel批量插入空行技巧 | |
Excel新函数无限递归反查B | |
数据清洗函数简洁宏优雅 | |
WPS本地云端数据双向同步 | |
WPS Query实战案例体验 | |
多维表发票AI智能识别统计 | |
母亲节日期计算方法 | |
WPS灵犀零代码搞定进销存 | |
统计汇总难倒同事,透视表不会 | |
70万数据汇总效率测试 | |
WPS JS宏迁移全攻略 | |
WPS Query轻量级数据清 | |
WPS小变化改变办公习惯 | |
WPS接入小米大模型实测 | |
WPS上线Power Quer | |
WPS接入DeepSeek本地 | |
WPSAI函数开启言出法随时代 | |
WPS+DeepSeek提升办 | |
WPS排名公式汇总 | |
WPS判断全部关键词方法 | |
正则函数与动态数组扩展技巧 | |
WPS关系数据查询写法 | |
WPS核心函数搞定多表合并 | |
winx64两个优化函数好用 | |
WPS提取文件及工作表名称函数 | |
多维表实现SUMIFS与进销存 | |
WPS新增函数提取万物 | |
会员管理系统多维表制作 | |
WPS新增GROUPBY和PI | |
WPS内测新函数体验 | |
WPS函数进化史案例 | |
WPS文本整理妙招 | |
WPS工资条独立查询系统 | |
WPS新增7大动态数组函数体验 | |
VLOOKUP多列结果教程 | |
VLOOKUP模糊匹配通配符教 | |
VLOOKUP函数1对多查询教 | |
VLOOKUP进阶教程 | |
WPS-AI龙年祝福语攻略 | |
VLOOKUP函数基础入门教程 | |
WPS表格欠缺功能 | |
LET+LAMBDA简化公式提 | |
WPS-JSA日期天坑踩平 | |
WPS Python智能补全实 | |
WPS自定义函数人人可用 | |
WPS中#SPILL!错误详解 | |
WPS新增11个函数全解析 | |
WPS动态数组革新领先 |
Lv.4 核心创作者
Lv.3 优质创作者