乐于分享
好东西不私藏

【WPS JSA】批量打印不同份数的不同工作表

【WPS JSA】批量打印不同份数的不同工作表

我们在使用WPS 表格时,有时一个工作簿中会有很多工作表,如召开大型会议或组织大型比赛时,会将用到的各种表格放到一个工作簿中,非常方便查看、修改等。当工作表多了,要打印时,特别是需要打印不同份数时,比如:报到表打印2份、人员信息表打印5份、发放表打印3、这个表不用打印、那个表打印20份…手动一个个设置打印份数不仅耗时,还容易出错。

你遇到过为打印不同份数的不同工作表而带来烦恼吗?

今天就给大家带来一个超实用的WPS JSA宏,让你轻松实现批量打印不同份数的不同工作表!

总共分三步:

第一步:在工作簿(要打印工作表的)中插入一新工作表(首位)。

第二步:运行提取工作簿工作表目录GetShtName()”宏“功能列”输入份数

第三步:运行宏批量打印不同份数工作表()”,就会按照设定的份数自动打印

温馨提示:

1.操作前,打印机联好通电,装满纸。

2.首次使用的,先用一、两个工作表进行测试。

3.不设置打印份数的,就不会打印。

4.打印前,应先预览检查工作表页面设置是否合理有效。

WPS JSA】代码:

function 批量打印不同份数工作表() {    try {        const workbook = Application.ActiveWorkbook// 获取当前活动工作簿        const sheets = workbook.Worksheets// 获取所有工作表集合        const sheet = workbook.ActiveSheet// 获取当前活动工作表        // 获取A列最后一行(从第2行开始查找)        const rowCount = sheet.Cells(sheet.Rows.Count1).End(-4162).Row;        if (rowCount < 2) {            MsgBox("没有找到可打印的工作表数据!"0"提示");            return;        }        const firstrow = 2, firstcol = 1// 设置起始单元格 (第2行第1列)        const colCount = 2// 设置结束单位格的列数        // 获取数据范围        const dataArray = sheet.Range(            sheet.Cells(firstrow, firstcol),             sheet.Cells(rowCount, colCount)        ).Value2;        // 遍历数据并打印        for (let i = 0; i < dataArray.length; i++) {            const sheetName = dataArray[i][0];            const copies = parseInt(dataArray[i][1]);            // 检查数据有效性            if (!sheetName || isNaN(copies) || copies <= 0) {                console.log(`跳过无效数据: 工作表名=${sheetName}, 份数=${copies}`);                continue;            }            try {                const sht = sheets.Item(sheetName);                console.log(`正在打印工作表: ${sheetName}, 份数: ${copies}`);                sht.PrintOut({                    Copies: copies,                    Collatetrue                });                延迟(200);// 添加短暂延迟,避免打印队列冲突//            } catch (e) {                console.log(`打印工作表 ${sheetName} 失败: ${e.message}`);            }        }        console.log("批量打印完成!");        MsgBox("批量打印不同份数工作表已完成!"0"提示");     } catch (error) {        console.log(`发生错误: ${error.message}`);        MsgBox(`执行过程中发生错误: ${error.message}`0"错误");    }}function 延迟(毫秒) {    const start = new Date().getTime();    while (new Date().getTime() < start + 毫秒) {        // 空循环等待    }}

试试使用这个代码,看看是否提高了工作效率,还避免了人工操作的失误。

好用,就收藏起来吧!下次遇到批量打印不同份数的需求,就一宏搞定。

可下载以下WPS表格查看示例:

【WPS JSA】批量打印不同份数工作表示例.zip

往期相关内容:

什么是WPS JSA?如何调用WPS宏编辑器?

【WPS JSA 】一键提取工作簿中所有工作表名称,如果工作表名称与表格的标题又是一样的,那就一不小心生成了文件目录了。

【WPS JSA】你用代码直接生成过表格吗?来试一下!

【WPS JSA】提取工作簿工作表目录并超链接,快捷切换工作表!

【WPS JSA】宏编程:两个字的名字中间批量增加两个空格,一次性完成数据标准化处理,秒成!

持续更新,收藏关注。

学会了WPS JSA实战,就是香!!!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 【WPS JSA】批量打印不同份数的不同工作表

评论 抢沙发

7 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮