【WPS JSA】秒删工作表数据区域内所有空行

大家好,我是宽吻鳄。这里是「宽吻鳄画表勒格记」——专注WPS表格硬核技巧,每期干货,让你的工作效率直线飙升!欢迎关注,咱们一起解锁更多高效技能!
在实际使用WPS表格工作时,一会儿需要插入空行,如制作工资条、设计工作表样式等等;一会儿又需要删除多余的空行,如网上下载到表格的资料带有很多空行、汇总下一级单位明细数据有的会带很多空行等等。当然,用手工操作都可以实现的,但空行的数据量很大,且又很分散时,手工操作的效率很低,也非常可能不小心误删除有用信息,自己还没有发现。
批量删除空行有几种应用场景:
1.当前工作表全表空行批量删除;
2.当前工作簿全部工作表空行批量删除;
3.当前工作表行选择区域空行批量删除;
4.当前工作表列选择区域空值批量删除行。
要想活干得快,漂亮,还不加班,请记住一个WPS表格应用原则:凡是涉及批量或重复性操作,JSA(JavaScript for Application)宏代码都能帮你一键完成,秒速搞定!
今天,重点介绍当前工作表全表空行批量删除。其他几种删除空行的应用将陆续更新。
来吧,直接上代码。
【WPS JSA】代码:
function 秒删工作表数据区域内所有空行() {try {// 获取活动工作表let sheet = ActiveSheet;// 获取数据区域(实际使用的范围)let usedRange = sheet.UsedRange;if (!usedRange) {MsgBox("当前工作表没有数据!", jsInformation, "提示");return;}// 如果只有一行或一列,特殊处理if (usedRange.Rows.Count === 1 && usedRange.Columns.Count === 1) {let cellValue = usedRange.Value2;if (!cellValue || cellValue.toString().trim() === "") {MsgBox("当前工作表没有数据!", jsInformation, "提示");} else {MsgBox("数据区域内只有单个非空单元格,无需删除!", jsInformation, "提示");}return;}// 关闭屏幕更新和自动计算,提高性能Application.ScreenUpdating = false;Application.Calculation = xlCalculationManual;let deletedCount = 0;let totalRows = usedRange.Rows.Count;let totalCols = usedRange.Columns.Count;// 从最后一行向前遍历(避免删除后索引变化)for (let i = totalRows; i >= 1; i--) {let rowIndex = usedRange.Row + i - 1; // 实际行号let isEmpty = true;// 检查该行在数据区域内的所有单元格for (let j = 1; j <= totalCols; j++) {let cell = sheet.Cells(rowIndex, usedRange.Column + j - 1);let cellValue = cell.Value2;// 判断单元格是否有数据if (cellValue !== null && cellValue !== undefined) {// 如果是数字,直接认为有数据if (typeof cellValue === 'number') {isEmpty = false;break;}// 如果是字符串,检查是否为空字符串或仅包含空格if (typeof cellValue === 'string' && cellValue.trim() !== "") {isEmpty = false;break;}// 如果是布尔值,认为有数据if (typeof cellValue === 'boolean') {isEmpty = false;break;}// 如果是日期或其他对象,认为有数据if (typeof cellValue === 'object' && cellValue !== null) {isEmpty = false;break;}}}// 如果整行为空,删除该行if (isEmpty) {sheet.Rows(rowIndex).Delete();deletedCount++;}}// 恢复屏幕更新和自动计算Application.ScreenUpdating = true;Application.Calculation = xlCalculationAutomatic;// 显示结果if (deletedCount > 0) {MsgBox("成功删除 " + deletedCount + " 个空行!", jsInformation, "完成");} else {MsgBox("数据区域内未发现空行!", jsInformation, "提示");}} catch (error) {// 确保异常时恢复设置Application.ScreenUpdating = true;Application.Calculation = xlCalculationAutomatic;MsgBox("执行出错: " + error.message, jsCritical, "错误");}}
基本操作步骤:
方法一:
1.打开你的WPS表格文件。按下 Alt + F11(或点击「开发工具」→「WPS宏编辑器」),打开WPS JSA编辑器。
2.插入模块并粘贴代码。在编辑器左侧右键点击「项目」中的当前工作簿,选择「插入」→「模块」,将代码完整复制到右侧代码窗口中。
3.回到WPS表格界面,点击「开发工具」→「运行宏」,找到相应宏,点击「运行」即可。
方法二:
1.打开你的WPS表格文件。按下 Alt + F11(或点击「开发工具」→「WPS宏编辑器」),打开WPS JSA编辑器。
2.按Ctrk+O键(不是零),导入相应js文件,就导入了JSA宏代码。
3.回到WPS表格界面,点击「开发工具」→「运行宏」,找到相应宏,点击「运行」即可。
在示例中已保留完整代码,可以动手试一试,直观感受实际效果。如果觉得好用、对工作有所助益,欢迎点个赞,或转发分享给身边的同事和朋友。更期待你在留言区分享使用经验或遇到的问题,我们一起交流探讨。
每一次互动,都值得期待。让我们共同成长!

夜雨聆风