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

  • 华为nova9有nfc吗(nova9带nfc吗)

    华为nova9有nfc吗(nova9带nfc吗)

  • 斗鱼收藏的帖子在哪(斗鱼怎么看收藏的帖子)

    斗鱼收藏的帖子在哪(斗鱼怎么看收藏的帖子)

  • 小爱和小艺哪个更智能(小爱和小艺哪个能下载应用软件)

    小爱和小艺哪个更智能(小爱和小艺哪个能下载应用软件)

  • 华为p10开发者选项在哪(华为p10设置中的开发者在什么位置)

    华为p10开发者选项在哪(华为p10设置中的开发者在什么位置)

  • 宏基笔记本电脑开机黑屏怎么办(宏基笔记本电脑u盘启动按哪个键)

    宏基笔记本电脑开机黑屏怎么办(宏基笔记本电脑u盘启动按哪个键)

  • 原彩显示费电吗(原彩显示 耗电吗)

    原彩显示费电吗(原彩显示 耗电吗)

  • 华为cdy-an00是什么型号(华为CDY-AN00是什么手机)

    华为cdy-an00是什么型号(华为CDY-AN00是什么手机)

  • 微信号提示请注意核实对方身份(微信号提示请注意核实对方身份怎么办)

    微信号提示请注意核实对方身份(微信号提示请注意核实对方身份怎么办)

  • 淘宝3心要多少信誉(淘宝3心多少分)

    淘宝3心要多少信誉(淘宝3心多少分)

  • 直播购物怎么购买(直播购物怎么购买东西)

    直播购物怎么购买(直播购物怎么购买东西)

  • 叮咚音箱连不上网怎么解决(叮咚音箱连不上网络怎么办)

    叮咚音箱连不上网怎么解决(叮咚音箱连不上网络怎么办)

  • 怎么下载google play(怎么下载google play上的apk)

    怎么下载google play(怎么下载google play上的apk)

  • 苹果11pro几个卡(苹果11pro几张电话卡)

    苹果11pro几个卡(苹果11pro几张电话卡)

  • 华为手机怎么查充电次数(华为手机怎么查型号)

    华为手机怎么查充电次数(华为手机怎么查型号)

  • 华为p30pro的音量键在哪(华为p30 音量)

    华为p30pro的音量键在哪(华为p30 音量)

  • 苹果耳机怎么切换上一曲(苹果耳机怎么切换模式设置)

    苹果耳机怎么切换上一曲(苹果耳机怎么切换模式设置)

  • 微信怎么发三秒照片(微信怎么发三秒钟销毁的照片)

    微信怎么发三秒照片(微信怎么发三秒钟销毁的照片)

  • oppo手机怎么强制关机(oppo手机怎么强制恢复出厂)

    oppo手机怎么强制关机(oppo手机怎么强制恢复出厂)

  • 苹果无线蓝牙耳机怎么用(苹果无线蓝牙耳机怎么配对)

    苹果无线蓝牙耳机怎么用(苹果无线蓝牙耳机怎么配对)

  • 微信语音能开一晚上吗(微信语音能开一小时吗)

    微信语音能开一晚上吗(微信语音能开一小时吗)

  • 苹果手机如何清理垃圾(苹果手机如何清理缓存和垃圾)

    苹果手机如何清理垃圾(苹果手机如何清理缓存和垃圾)

  • 拼多实名认证步骤(拼多实名认证步骤图)

    拼多实名认证步骤(拼多实名认证步骤图)

  • 苹果8怎么清理缓存(苹果8怎么清理手机空间)

    苹果8怎么清理缓存(苹果8怎么清理手机空间)

  • 证书验证失败怎么回事(证书验证失败怎么弄)

    证书验证失败怎么回事(证书验证失败怎么弄)

  • snsv是什么牌子(snsv是什么牌子主板)

    snsv是什么牌子(snsv是什么牌子主板)

  • 新版微视怎么删除作品(如何删除微视中的视频)

    新版微视怎么删除作品(如何删除微视中的视频)

  • 小米9充电器多少瓦(小米9充电器多少w)

    小米9充电器多少瓦(小米9充电器多少w)

  • 2023短剧小程序分销cps系统搭建,教你上线自己的短剧平台(短视频小程序源码)

    2023短剧小程序分销cps系统搭建,教你上线自己的短剧平台(短视频小程序源码)

  • 捐赠支出纳税调减
  • 应交税费和应交增值税
  • 个体工商户增值税怎么计算
  • 应付账款暂估款的会计分录
  • 总账和成本哪个工资高
  • 服装类发票可以做账吗
  • 住房公积金个人和单位各承担多少
  • 外贸企业出口采购流程
  • 材料成本会计的主要内容
  • 6%税率的项目(不含金融商品转让)免税么
  • 水利建设专项收入税率
  • 有产权车位转让需要什么手续和费用
  • 购入二手设备,无发票怎么记账
  • 收到不开票的返利如何记账?
  • 农村合作社收到奖金分录
  • 增资溢价率
  • 预借差旅费计入其他应收款吗
  • 所得税退税会计分录为啥要借贷所得税费用
  • word文档打印时不打印批注
  • linux配置与管理教程
  • 计提增值税的会计科目
  • win7系统中怎么找不到投影仪
  • 事假扣款进什么科目
  • 无序树有几种
  • 企业出租房屋怎样报税
  • 差旅费报销管理规定2022
  • php实现数据批量导入
  • 购货返利
  • 银行手续费未开发票
  • 跨年度发票会计分录
  • 期末余额和年初余额为什么不一样
  • 新所得税会计准则
  • javascript导入包
  • mkisofs命令
  • php中字符串的连接运算符是( )
  • 银行同业存放业务管理办法
  • 初级会计直线法摊销
  • 如何做进项税额转出处理
  • 上一年的进项税转出还用交企业所得税吗
  • 小规模开票多少成一般纳税人
  • 增值税纳税申报实训报告
  • 收到银行电子汇票已入账怎么做账
  • 空调维修保养方案
  • 税控服务费如何入账
  • 公司销售一批物品怎么做
  • 关于幼儿园的会议内容
  • 车辆违章有几种处理方法
  • 提取法定盈余公积金会计分录
  • 增值税对企业
  • 预付账款长期挂账的合理原因
  • 出纳的现金日记账表格怎么做
  • 固定成本包括哪些项目
  • 什么是结账?结账前要做哪些准备工作?
  • 实现分页功能的多种原理方案
  • mysql中删除表中的数据
  • mysql 备份和恢复
  • win7一直弹广告怎么办
  • win8.1打开软件显示Error远程配置获取失败请重新启动
  • 硬盘安装在机箱内,属于主机的组成部分
  • 使用windows hello之前必须设置pin
  • 苹果mac电脑打不开
  • ubuntu18.04启用root
  • windows10周年更新
  • win8如何更改用户名字?
  • 如何快速破局
  • win8声音小怎么解决
  • vb6.0win10安装教程
  • Linux文本处理工具的实验总结
  • vue router使用query和params传参的使用和区别
  • excel一行首尾互换
  • 浅谈python
  • [置顶]星陨计划
  • 在windows中快捷键的作用
  • express常用api
  • 国家税务局湖南电子税务局登录
  • 西安税务机关
  • 生产变压器设备
  • weverse登录不了
  • 印花税核定依据填写什么
  • 福建电子税务局社保缴费操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设