位置: IT常识 - 正文

WPS JS宏入门案例集锦(excel js宏)

编辑:rootadmin
WPS JS宏入门案例集锦

推荐整理分享WPS JS宏入门案例集锦(excel js宏),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:wps宏的使用方法,office js宏,wps宏代码是怎么写的,wps js宏教程,wps js宏教程,wps js宏教程,wps js宏教程,WPS JS宏入门案例集锦,内容如对您有帮助,希望把文章链接给更多的朋友!

JS宏官方API文档:https://qn.cache.wpscdn.cn/encs/doc/office_v19/index.htm

批量创建工作表/簿

批量创建工作表:

function 批量创建工作表(){for (var city of ["成都","上海","北京"]){let sht = Worksheets.Add();sht.Name = city;}}

批量创建工作簿:

function 批量创建工作簿(){for (var city of ["成都","上海","北京"]){book = Workbooks.Add();book.SaveAs(`E:/tmp/${city}`);book.Close();}}

若book.SaveAs不传入全路径,则默认可能保存到我的文档文件夹中。

批量拆分工作表到工作簿

数据如下:

执行代码:

function 批量拆分工作表(){for (var sh of Sheets){// 如果既不指定 Before 也不指定 After,则新建一个工作簿,其中包含复制的工作表。sh.Copy();ActiveWorkbook.SaveAs(`E:/VBA/wps/${sh.Name}.xlsx`);ActiveWorkbook.Close();}}

分解出3个独立的文件:

批量判断处理单元格数据

数据和需求如下:

简单的方法就是直接筛选再复制粘贴,但是现在我们需要完全基于js宏的语法实现:

function 分数筛选(){var Arr1=[];var Arr2=Range("a2:b13").Value();for (var row of Arr2){if (row[1]>=100){Arr1.push(row);}}Range("d4").Resize(Arr1.length,2).Value2=Arr1}

运行后:

工资条制作

数据如下:

执行如下代码:

function 工资条制作(){Application.DisplayAlerts=false;let src=Sheets("工资表");for(let sht of Sheets){if(sht.Name=="结果") sht.Delete();}Application.DisplayAlerts=true;var sht=Worksheets.Add();sht.Name="结果";for(i=0;i<10;i++) {src.Range("a1:m4").Copy();sht.Cells.Item(5*i+1,1).PasteSpecial();src.Range(`A${i+5}:M${i+5}`).Copy();sht.Cells.Item(5*i+5,1).PasteSpecial();}sht.Activate()}

拆分结果:

注意:如果原表不止10人,则修改循环次数即可。

WPS JS宏入门案例集锦(excel js宏)

如果允许直接在原表上修改,可以使用相对引用录制宏得到代码:

function 工资条制作2(){Range("a1:m4").Select();for (var i=1;i<=9;i++){Selection.Copy();ActiveCell.Offset(5, 0).Range("A1:M4").Insert(xlShiftDown, undefined);Application.CutCopyMode = false;ActiveCell.Offset(5, 0).Range("A1:M4").Select();}}任意多列SN号合并到一列

原数据都是如下格式的SN号:

下面我们考虑通过宏代码合并到一列,代码如下:

function 单表多列合并到一列新文件(){var vs=Range("A1").CurrentRegion.Value().flat();// 过滤掉空值并去重vs=Array.from(new Set(vs.filter(v=>v!=undefined)));// 一维数组默认赋值给一行,赋值给一列需要先转置二维vs = WorksheetFunction.Transpose(vs);var wb = Workbooks.Add();wb.Sheets(1).Range("A1").Resize(vs.length,1).Value2 = vs;}

注意:上面的代码使用JavaScript的语法对数组进行了去重。

Array.from(new Set(arr))

过滤空值:

arr.filter(v=>v!=undefined)

最终得到一列:

批量合并工作表并添加来源表名

原数据:

执行代码:

function 合并工作表数据(){var NewArr=[],n=1;for (var ws of Sheets){var Arr=ws.Range("a1").CurrentRegion.Value();if (n++ ==1){var title=Arr[0].concat("工作表名")};delete Arr[0]Arr.forEach(ar=>NewArr.push(ar.concat(ws.Name)));}NewArr.unshift(title);var wb=Workbooks.Add();wb.Sheets(1).Range("a1").Resize(NewArr.length,NewArr[0].length).Value2=NewArr;}

成功合并得到如下结果:

语音朗读

代码如下:

function Workbook_Open(){ Application.Speech.Speak("美好的一天就从这一刻开始吧!",true)}function Workbook_NewSheet(Sh){ Application.Speech.Speak("果然狠人老表,区区几张sheet是不够你消遣的!",true)}function Application_WorkbookBeforeClose(Wb, Cancel){ Application.Speech.Speak("就想问老板,可以下班了吗?")}function Application_SheetSelectionChange(Sh, Target){if(Sh.Name!="词汇"|Target.Value()==undefined) return;Application.Speech.Speak(Target.Value());}

保存上面的代码后,当打开或关闭该文件或新建工作表都会朗读对应的文字。

对于词汇这张工作表,点击任何有值的单元格都会对其进行朗读。

Application.Speech.Speak第二个参数传入true表示异步,默认为同步。

富文本弹窗

alert函数支持传入HTML:

function testAlert_CSS(){let foo = `<h3 style="color:red">Hi</h3><p style="color:green;text-shadow: 1px 1px 2px red, 0 0 1em blue, 0 0 0.2em blue;">Hi ${new Date().toLocaleDateString()}</p>`;alert(foo)}

执行效果:

判断目标是否在指定区域内function _m_isInArea(uArea,cell){ uArea = typeof(uArea) =="string" ? Range(uArea):uArea; cell = typeof(cell) =="string" ? Range(cell):cell; if(uArea.Parent.Name!=cell.Parent.Name) return false; let s_row=uArea.Row,e_row=s_row+uArea.Rows.Count-1; let s_col=uArea.Column,e_col=s_col+uArea.Columns.Count-1; let t_row = cell.Row,t_col = cell.Column;//Console.log(`${s_row}-${e_row},${s_col}-${e_col},(${t_row},${t_col})`);return s_row<=t_row && t_row<=e_row && s_col<=t_col && t_col<=e_col;}function _m_test(){ Console.log(_m_isInArea("A2:C20","B3")); Console.log(_m_isInArea("A2:C20","D3"));}

结果:

truefalse本地文件读写function read_write_data_txt(){let txtFile = "E:/tmp/a.txt"; let f = FreeFile() ;Open(txtFile,f,jsOutput,jsWrite);Write(f,"123");Write(f,"456,789");Write(f,"aaa,bbb"); Close(); Console.clear() let fNumber = FreeFile() Open(txtFile, fNumber,jsInput) while(!EOF(fNumber)) { let p=LineInput(fNumber); Console.log(p) } Close(fNumber)}"123""456,789""aaa,bbb"

生成文件:

JavaScript语法补充undefined和null的区别

undefined和null的区别(值相等,但类型不等) :

typeof undefined // undefinedtypeof null // objectnull === undefined // falsenull == undefined // truetypeof操作符

typeof 操作符可以检测变量的数据类型 :

typeof "John" // 返回 string typeof 3.14 // 返回 numbertypeof NaN // 返回 numbertypeof false // 返回 booleantypeof [1,2,3,4] // 返回 objecttypeof {name:'John', age:34} // 返回 objecttypeof new Date() // 返回 objecttypeof function () {} // 返回 functiontypeof myCar // 返回 undefined (如果 myCar 没有
本文链接地址:https://www.jiuchutong.com/zhishi/285085.html 转载请保留说明!

上一篇:如何挽留婚姻,如何拯救您的婚姻?(如何挽留婚姻危机)

下一篇:“和平之墙”和巴黎的埃菲尔铁塔 (© Prisma by Dukas Presseagentur GmbH/Alamy)(和平之城)

  • glk-al00是什么型号(glk-al10是什么型号)

    glk-al00是什么型号(glk-al10是什么型号)

  • 苹果设备名称在哪里改(苹果设备名称在哪里看)

    苹果设备名称在哪里改(苹果设备名称在哪里看)

  • vivov1801a0是什么型号(vivov1809a什么手机)

    vivov1801a0是什么型号(vivov1809a什么手机)

  • 荣耀5手环太难充电(荣耀手环五怎么样)

    荣耀5手环太难充电(荣耀手环五怎么样)

  • 海信手机强制恢复出厂设置(海信手机 强制重启)

    海信手机强制恢复出厂设置(海信手机 强制重启)

  • 健康码上的信息别人能查到吗(健康码的信息可以修改吗)

    健康码上的信息别人能查到吗(健康码的信息可以修改吗)

  • 手机登两个微信怎么登(咋样一个手机登两个微信)

    手机登两个微信怎么登(咋样一个手机登两个微信)

  • ipad屏幕变暗变不回来(ipad屏幕变暗了怎么恢复)

    ipad屏幕变暗变不回来(ipad屏幕变暗了怎么恢复)

  • 华为matebook14怎么下载软件(华为matebook14怎么样,值得购买吗)

    华为matebook14怎么下载软件(华为matebook14怎么样,值得购买吗)

  • 腾讯会议是免费的吗(腾讯会议收费)

    腾讯会议是免费的吗(腾讯会议收费)

  • 哔哩哔哩怎么换头像(哔哩哔哩怎么换手机号以前的号不用了)

    哔哩哔哩怎么换头像(哔哩哔哩怎么换手机号以前的号不用了)

  • 中国移动5g怎么开通(中国移动5g怎么领取会员)

    中国移动5g怎么开通(中国移动5g怎么领取会员)

  • 电信卡hd啥意思(电信卡上hd什么意思)

    电信卡hd啥意思(电信卡上hd什么意思)

  • 微信解绑手机号之后还可以登录吗(微信解绑手机号后还可以正常使用吗)

    微信解绑手机号之后还可以登录吗(微信解绑手机号后还可以正常使用吗)

  • 苹果11怎么关机重启(苹果11怎么关机不了)

    苹果11怎么关机重启(苹果11怎么关机不了)

  • 手机如何隐藏软件图标(手机如何隐藏软件vivo)

    手机如何隐藏软件图标(手机如何隐藏软件vivo)

  • x27有红外线功能吗(x27带红外功能吗)

    x27有红外线功能吗(x27带红外功能吗)

  • 高德导航怎么收藏路线(高德导航怎么收取费用)

    高德导航怎么收藏路线(高德导航怎么收取费用)

  • 免拼卡怎么手动赠送(使用免拼卡算拼单成功吗)

    免拼卡怎么手动赠送(使用免拼卡算拼单成功吗)

  • 小米4手环和荣耀4手环区别(小米运动手环4和荣耀运动手环5)

    小米4手环和荣耀4手环区别(小米运动手环4和荣耀运动手环5)

  • 数据库应用系统中数据资源的共享应该满足(数据库应用系统的概念)

    数据库应用系统中数据资源的共享应该满足(数据库应用系统的概念)

  • oppoa9处理器相当于骁龙多少(oppoa9处理器)

    oppoa9处理器相当于骁龙多少(oppoa9处理器)

  • vivo广告怎么关闭(vivo取消广告)

    vivo广告怎么关闭(vivo取消广告)

  • 华为nxtcl00什么型号

    华为nxtcl00什么型号

  • QQ音乐怎么注销(电脑qq音乐怎么注销)

    QQ音乐怎么注销(电脑qq音乐怎么注销)

  • 个人将租用的商铺怎么办
  • 利润表的调整
  • 运输费全额抵扣什么意思
  • 研发费用直接计入成本吗
  • 自产农产品增值税申报表填10行吗
  • 工会费缴纳基数
  • 居民企业参股外国企业信息报告表怎么删除
  • 持有至到期投资是什么意思
  • 营业执照注销还需要交钱吗
  • 代别的公司付款怎么做账
  • 企业现金股利的支付能力,在很大程度
  • 公司发的奖金可以直接公司账户转账给员工吗?
  • 营业账簿印花税包括什么
  • 投资收益所得税表怎么填
  • 城建税漏报怎么办
  • 增值税发票抵扣进项税什么意思
  • 小规模纳税人可以抵扣增值税专用发票吗
  • 转回已确认固定资产减值损失的会计处理怎么做?
  • 赞助贫困学生的语句
  • 工会票据电子化管理系统如何领发票
  • 企业是核定征收还是查账征收怎么查
  • 支付版权费用怎么入账
  • 出口退税生产企业税率
  • 一刀999是什么游戏
  • win11怎么取消开机启动项
  • 应收票据到期收回时和未到期转让时
  • 电子商票到期后多少天有效?
  • 长期待摊费用的概念
  • 分配结转制造费用时借方科目
  • 行政事业单位会计科目一览表
  • php删除数组中重复的元素
  • php中imagestring
  • 供电局销售电力产品
  • 微信小程序反编译2023
  • 金蝶账无忧待遇和金蝶一样吗
  • vue项目引入ts
  • php curl file_get_contents
  • vue开发教程
  • 大模型时代的自然语言处理
  • React Hook - useEffecfa函数的使用细节详解
  • 场外期权怎么交税
  • python 平均函数
  • 离职员工的个税忘记申报了补申报会被处罚吗
  • 终止经营损益列报 举例
  • 企业变更股东需要什么手续
  • 短期股票投资售出
  • 工资薪金的税务筹划
  • sql使用cast进行数据类型转换示例
  • 小额贷款在银行需要什么条件
  • 固定资产出售增值税减按2%征收,附表一,填写
  • 在建工程中的业务招待费转无形资产后所得税如何处理
  • 发行长期债券计入什么科目
  • 企业会计制度对固定资产无入账价值怎么入账
  • 如果找国外客户
  • 应付账款增值税如何挂账
  • 采购材料发票未到
  • 核销预收账款是否需要计提增值税
  • 缴纳注册资金印花税怎么做账
  • 五金行业怎么开店
  • mysql存emoji表情
  • win7支持net.framework4.7.2
  • freebsd软件包存储库
  • 装双win7系统怎么设置
  • win8右下角图标不见了
  • win8如何更新驱动
  • win10系统更新出错怎么办
  • css spirit
  • linux中shell脚本编写
  • jquery插件怎么用到自己的网站
  • 在vue中添加按钮使内容消失
  • bootstrap tree table
  • pythonlist排序算法
  • js alert()
  • JQuery datepicker 用法详解
  • javascript delete 使用示例代码
  • unity3d 场景
  • 利用jQuery实现一个时间无法显示
  • 软件销售增值税优惠
  • 机动车检测属于哪个税收
  • 矿产资源税税率2020年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设