位置: 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)(和平之城)

  • 微信可以在付款时选择支付方式吗(微信在付款界面退不出来了)

    微信可以在付款时选择支付方式吗(微信在付款界面退不出来了)

  • i怎么解绑电子健康卡(怎样解绑apple id)

    i怎么解绑电子健康卡(怎样解绑apple id)

  • excel表格rank函数怎么用(excel表格rank函数怎么使用)

    excel表格rank函数怎么用(excel表格rank函数怎么使用)

  • 荣耀30pro支持屏幕指纹的吗(荣耀30pro屏幕是lcd还是oled)

    荣耀30pro支持屏幕指纹的吗(荣耀30pro屏幕是lcd还是oled)

  • ios14怎么添加桌面小组件(ios14怎么添加桌面时间和日期)

    ios14怎么添加桌面小组件(ios14怎么添加桌面时间和日期)

  • 微信删了人怎么还可以收到对方的消息(微信删了人怎么加回来对方不知道)

    微信删了人怎么还可以收到对方的消息(微信删了人怎么加回来对方不知道)

  • 显示器蓝屏是怎么回事(显示器蓝屏怎么办)

    显示器蓝屏是怎么回事(显示器蓝屏怎么办)

  • 手机补胶后屏幕边缘泛黄(手机补胶后屏幕边缘泛黄过几天就消失了)

    手机补胶后屏幕边缘泛黄(手机补胶后屏幕边缘泛黄过几天就消失了)

  • 小米手机流量校正失败怎么回事(小米手机流量校正指令是什么)

    小米手机流量校正失败怎么回事(小米手机流量校正指令是什么)

  • 4代i7相当于几代i5(4代i7相当于几代cpu)

    4代i7相当于几代i5(4代i7相当于几代cpu)

  • 荣耀v30是什么系统(华为荣耀v30是华为手机吗)

    荣耀v30是什么系统(华为荣耀v30是华为手机吗)

  • 淘宝浏览别人主页有记录吗(淘宝浏览别人主页安全吗)

    淘宝浏览别人主页有记录吗(淘宝浏览别人主页安全吗)

  • 手机桌面钉钉图标不见了(手机桌面钉钉图标不见了怎么恢复正常)

    手机桌面钉钉图标不见了(手机桌面钉钉图标不见了怎么恢复正常)

  • 拉黑了电话还能收到短信吗(拉黑了电话还能打通吗)

    拉黑了电话还能收到短信吗(拉黑了电话还能打通吗)

  • sony 8000g 8500g区别

    sony 8000g 8500g区别

  • 抖音上淘宝链接怎么弄(抖音上淘宝链接需要开通抖音小店吗)

    抖音上淘宝链接怎么弄(抖音上淘宝链接需要开通抖音小店吗)

  • 在相片上画圈圈怎么弄(怎么在相片上画圆圈)

    在相片上画圈圈怎么弄(怎么在相片上画圆圈)

  • 腾讯开放平台推出时间(腾讯开放平台官网手机版)

    腾讯开放平台推出时间(腾讯开放平台官网手机版)

  • word2003稿纸设置在哪(word2016稿纸设置)

    word2003稿纸设置在哪(word2016稿纸设置)

  • 抖音长腿特效详细位置(2021抖音视频长腿特效)

    抖音长腿特效详细位置(2021抖音视频长腿特效)

  • word链接到前一条页眉在哪(word链接到前一节是什么意思)

    word链接到前一条页眉在哪(word链接到前一节是什么意思)

  • wps怎么绘制表格线(wps怎么绘制表格然后打印)

    wps怎么绘制表格线(wps怎么绘制表格然后打印)

  • 华为有nfc功能吗(华为p20有nfc功能吗)

    华为有nfc功能吗(华为p20有nfc功能吗)

  • vivo手机能当门禁卡吗(vivo手机可以当门禁卡使用吗)

    vivo手机能当门禁卡吗(vivo手机可以当门禁卡使用吗)

  • 快手直播怎么申诉回来(快手直播怎么申请视频连麦)

    快手直播怎么申诉回来(快手直播怎么申请视频连麦)

  • oppo右上角半圆太极图标(oppoa9右上角有个半圆的标志)

    oppo右上角半圆太极图标(oppoa9右上角有个半圆的标志)

  • windows下刷新主板bios图文教程(windows刷新桌面)

    windows下刷新主板bios图文教程(windows刷新桌面)

  • 购买土地缴纳的费用
  • 建安增值税怎么计算
  • 纳税人离线开票时间的文件
  • 子公司向母公司借款利息税务处理
  • 银行理财算投资吗
  • 一般企业都涉及到哪些税
  • 贷款服务可以抵扣增值税吗
  • 固定资产原价的结余额
  • 跨国避税
  • 去年多计提了费用今年怎么办
  • 增值税发票本月没用完可以下月用吗
  • 运输业增值税专用发票开具要求
  • 营业外支出税前可以扣除吗
  • 工伤保险费发票
  • 分红未及时扣缴税款要缴滞纳金吗?
  • 公司交一部分社保个人还要交多少钱
  • 质量扣款入账
  • 资本公积转增实收资本个人所得税
  • Yii2使用驼峰命名的形式访问控制器的示例代码
  • 收到服务费计入什么科目
  • 销售额是否含税?
  • 住房公积金领出来用了影响以后买房贷款吗
  • 云霞下的麦田
  • php获取post参数
  • 一二级公路增值税税率
  • 阳光穿透云层是什么效应
  • thinkphp上传文件
  • php记录页面停留多久
  • vue 组件调用
  • Android ImageView使用详解(系列教程三)
  • vue前端常见面试题
  • 合并的命令
  • 资本化过程
  • etcd4
  • okhttp3源码分析
  • dedecms官网
  • mongodb数据删除
  • 织梦怎么导入数据库
  • 高新企业奖励怎么领取
  • 软件企业研发费用
  • 非限定性净资产和限定性净资产的区别
  • 国际结算手续费收入增值税
  • 单位每个月支付给个人的保洁费如何申报入账
  • 加计扣除产生的利润可以分配吗
  • 销售费用现金支出预算
  • 建筑劳务清包工账务处理
  • 哪些情况应收账款不能扣
  • 待发货订单是什么意思
  • 磅差怎么开票
  • 民办非企业的申请流程
  • 管理费用和销售费用都有职工薪酬
  • 农业机耕开发票税收分类编码是什么?
  • 其他应收款核算什么
  • 企业会计准则和小企业准则的区别
  • 购买税控系统分录
  • 委托收款的流程
  • 税控盘网上抄报税的步骤
  • mysql缩进快捷键
  • mysql中排序规则是什么意思
  • Win10 64位系统下鼠标右键刷新没反应的解决方案
  • Win Server 2003 使用技巧图解
  • etcfstab文件修改
  • win7宽带自动拨号设置
  • win10不能显示桌面
  • win 8怎么样
  • gcf是什么软件的文件
  • windows8怎么设置锁屏密码
  • 简洁桌面怎么设置
  • excel表限制
  • jQuery+AJAX实现遮罩层登录验证界面(附源码)
  • 将Bitmap用Base64转码成字符串,再解码回来出现黑色背景的问题原因及解决办法。
  • perl语句
  • 关于android工程中的assets目录的正确说法
  • jquery常用的事件绑定函数有哪些
  • shell 批量删除
  • python 技巧
  • 棚改房办房产证用不用交费
  • 土地增值税法定扣除项目
  • 如何查找迪士尼电话号码
  • 广西地税代收工作怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设