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

  • 华为荣耀9xpro可以换外屏吗(华为荣耀九xpro)

    华为荣耀9xpro可以换外屏吗(华为荣耀九xpro)

  • 手机号被别人注册滴滴(手机号被别人注册微信了怎么办)

    手机号被别人注册滴滴(手机号被别人注册微信了怎么办)

  • 夸克缓存视频无法播放(夸克缓存视频播放不出来)

    夸克缓存视频无法播放(夸克缓存视频播放不出来)

  • 嘀嘀顺风车上线了吗(滴滴顺风车上架了吗)

    嘀嘀顺风车上线了吗(滴滴顺风车上架了吗)

  • kindle看书伤眼睛吗(用kindle看书伤眼吗)

    kindle看书伤眼睛吗(用kindle看书伤眼吗)

  • 微信扫二维码出现英文乱码(微信扫二维码出现两个微信名是怎么回事)

    微信扫二维码出现英文乱码(微信扫二维码出现两个微信名是怎么回事)

  • 抖音昵称修改次数上限怎么办(抖音昵称修改次数已达上限)

    抖音昵称修改次数上限怎么办(抖音昵称修改次数已达上限)

  • iphone可以连接鼠标吗(苹果能连鼠标吗)

    iphone可以连接鼠标吗(苹果能连鼠标吗)

  • 鸿蒙系统手机有哪些(鸿蒙系统手机有哪些型号)

    鸿蒙系统手机有哪些(鸿蒙系统手机有哪些型号)

  • 回收站是硬盘还是内存(回收站用的是硬盘容量吗)

    回收站是硬盘还是内存(回收站用的是硬盘容量吗)

  • 视频mov是什么格式(mov是mp4格式吗)

    视频mov是什么格式(mov是mp4格式吗)

  • 检测到ip地址冲突是什么原因(检测到ip地址冲突怎么解决)

    检测到ip地址冲突是什么原因(检测到ip地址冲突怎么解决)

  • opporeno2和reno的区别(oppo reno和reno2)

    opporeno2和reno的区别(oppo reno和reno2)

  • 手机的返回键怎么设置在屏幕上(手机的返回键怎么设置出来)

    手机的返回键怎么设置在屏幕上(手机的返回键怎么设置出来)

  • stlink仿真器有什么用(stlink仿真器怎么用)

    stlink仿真器有什么用(stlink仿真器怎么用)

  • qq连麦有办法录音吗(qq连麦有办法录屏吗)

    qq连麦有办法录音吗(qq连麦有办法录屏吗)

  • pc客户端下载是什么意思 (下载pc客户端软件)

    pc客户端下载是什么意思 (下载pc客户端软件)

  • 移动网光信号闪红灯是怎么回事(移动网光信号闪烁)

    移动网光信号闪红灯是怎么回事(移动网光信号闪烁)

  • 手机自拍不清楚怎么办(手机自拍不清楚是怎么回事是手机坏了吗)

    手机自拍不清楚怎么办(手机自拍不清楚是怎么回事是手机坏了吗)

  • OPPO k5怎么开启防误触模式(OPPOk5怎么开启双无线)

    OPPO k5怎么开启防误触模式(OPPOk5怎么开启双无线)

  • oppoa9提示灯怎么开启(oppo手机提示灯)

    oppoa9提示灯怎么开启(oppo手机提示灯)

  • 苹果怎么删除就寝时间(苹果怎样删除)

    苹果怎么删除就寝时间(苹果怎样删除)

  • w10插着网线连不上网(w10插着网线无法连接internet)

    w10插着网线连不上网(w10插着网线无法连接internet)

  • 企业级应用有什么危险(企业级应用有哪些)

    企业级应用有什么危险(企业级应用有哪些)

  • ipad如何设置儿童锁(ipad如何设置儿童账号)

    ipad如何设置儿童锁(ipad如何设置儿童账号)

  • js中变量对象如何理解(js变量作用范围)

    js中变量对象如何理解(js变量作用范围)

  • phpcms模型怎么导入(phpcms生成html)

    phpcms模型怎么导入(phpcms生成html)

  • 消费税的会计分局
  • 个人出售满两年和不满两年的住
  • 专用发票只能公对公吗
  • 金税盘维护费全额抵扣吗
  • 会计报表编制有哪些标准
  • 买烟草可以开发票吗
  • 电子发票打小了可以报销吗
  • 红字发票信息表编号在哪里看
  • 签证费没有发票可以入账吗
  • 增值税加计递减额,这个科目如何使用
  • 债务重组损失是费用吗
  • 三证合一办理流程及费用
  • 小企业作废的发票怎么开
  • 4s店改装车后卖车合法吗
  • 不动产租赁异地预缴需要携带什么
  • 实习生需要缴纳个税吗?
  • 新成立的公司如何建账
  • 办公室租赁合同需要交哪些税额?
  • 医疗器械 税点
  • 怎样用增值税专票抵扣
  • 电子发票无法预览怎么弄
  • 增值税进项余额月末转吗
  • 休眠文件大小设置
  • 以报销形式发放的工资 劳动仲裁
  • 社保参保退费需要多久
  • 系统资源不足,无法
  • 金融负债的范围
  • php未定义数组下标0
  • 税控机动车销售统一发票抵扣
  • 商企预提待付费什么意思
  • 处置抵债资产的增值税计入
  • 调整固定资产折旧年限,折旧额的变化
  • 外经交的个税如何计算
  • Yii2使用swiftmailer发送邮件的方法
  • nginx for linux
  • yolo v1 pytorch源代码
  • framework教程
  • ChatGPT 被大面积封号,到底发生什么了?
  • mac配置php开发环境
  • 不开票销售收入怎么做账务处理
  • 财务费用汇兑损失是什么
  • 网商贷企业贷款条件
  • 再生资源回收企业现状
  • 公账转给员工工资情况说明怎么写
  • 注销小规模财务报表怎么办
  • 在建工程的土地可以查封吗
  • 资本公积的用途主要用于
  • 工业企业中制造费用包括哪些内容
  • 企业所得税法允许按规定的比例在税前扣除的准备金
  • 工程收到款项会计分录
  • 制作费计入什么费用
  • 增值税普票跨月作废怎么操作
  • 小微企业记账必须有会计证吗
  • 保证金抵扣货款情况说明范文
  • 主营业务成本的增加在哪一方
  • 企业装卸费抵扣怎么做账
  • Linux下MySQL 5.6.27 安装教程
  • 深度Win7 64位系统默认输入法图标如何个性化设置
  • win10右键菜单怎么设置
  • ubuntu开启图形化界面
  • jucheck.exe是什么
  • 系统设置技巧有哪些
  • linux中使用grep命令显示包含特殊字符的行
  • linux系统查看磁盘io
  • win8/10功能
  • win8桌面键盘
  • style js
  • linux查看目录的权限的命令
  • pycharm怎么学
  • Android AsyncTaskLoader需要注意的问题
  • javascript高级程序设计最新版
  • shell命令for
  • bootstrap 树形菜单
  • dom基础知识
  • python2设置环境变量
  • 512到底是什么意思
  • 山东省国税地税体制改革
  • 超市一般纳税人做账流程
  • 小规模纳税人开专票需要交税吗
  • 坡面台阶
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设