ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 22604|回复: 238

[原创] 跟我学JavaScript in WPS

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2022-5-15 08:46 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ctp_119 于 2023-11-10 17:00 编辑

前言


要加入微信群的,可以先加我微信:15867751231,我再拉进群



          为了跟进时代的步伐,在工作中居于不败之地,就要不断学习新知识,是每个坛友光荣使命!!!Excel中的宏语言VBA渐渐的老去(多年未更新,以后也不再更新),这时候,正好WPS的宏语言JS(JavaScript for Application)迎运而生。为了夺取先机,虽说年岁已老,不惜透顶的风险(哈哈,添加不了表情),也要冒然跟进!!!遗憾的是,JS帮助文件不给力,网上也少有系统性的教程,都是一些片段式的视频和文字,给初学者带来不少困惑。市面上也没有关于WPS JS的书籍!希望哪位大咖早日系统性的写本有关WPS 宏语言的教程及应用,期待着……盼望着……
         因本人也是最近才开始学习WPS JS,所以理解肯定有很大的片面性和缺陷型,希望坛友发现后,不惜赐教!!!还好,我VBA比较熟悉,学起JS来还行,几个日日夜夜,累并快乐着……总算上道了。想跟我学习的坛友,一定要有VBA的基础,或者有JS的基础,跟着我学,才不会吃力!我也想,尽可能使坛友看过本帖,跟着一起在道上混,O(∩_∩)O哈哈~
        既然JS是一门计算机语言,只要学过一门计算机语言的坛友,学习的时候就要习惯性的类比,联想,差异比较性去学习,经常对自己发问,这样的问题,用JS语言如何解答,上机写代码,写代码,不断的写代码,测试,优化,咬住一个问题,用多种方法去解决。我就是这样的。后面给出的例子,就是这样的,给出多种方法和思考过程!希望能给坛友带来启发。
c8d159ab67e7252697b9ef101c09555.png
         我们的目标是:熟练的运用JS解决工作中实际问题。先看一个动画:
WPS JS学习目标.gif

评分

12

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-15 19:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ctp_119 于 2022-5-15 19:38 编辑

      最新版本的WPS都自带JS宏,建议坛友下载https://www.wps.cn/
1652612761.png

先来启用WPS 宏编辑器,和VBA一样,可以按Alt+F11快捷键进入JS编辑器如图
1652613684(1).png
区别在于工程窗口,没有了工作表了。




也可以操作进入JS宏编辑窗口:开发工具->WPS宏编辑器,即可进入上图界面。





TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-15 19:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ctp_119 于 2022-5-16 18:11 编辑

         学习JS的法宝永远是录制宏代码,但是JS录制宏的功能非常弱,甚至录制出来的JS代码,运行报错!我也是郁闷!!!国产软件要加强使用体验。
下面是一段录制代码:
1652614085(1).png
录制方法:开发工具->录制新宏->操作WPS,即可录制操作动作。
并非所有动作都可以录制!!!
录制的代码是非常冗余的,通常是需要修改后使用,我录制宏,通常是为了学习JS是如何表达的!用的是什么对象,方法,或者属性。





TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-15 19:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如何运行代码(和VBA类似):F5运行,主句运行不同,JS是F11,而VBA是F8。宏编辑器工具栏中也有相应的按钮,如图所示:

1652615043(1).png

学过VBA的坛友,这些一看即会,没有多大的困难,就此介绍这里略过。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-15 20:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ctp_119 于 2022-5-16 07:27 编辑

          对于初学者来说,一门新的语言,如何表达是最为关键!初步描述一下,JS宏都是函数,所有代码都在函数里。包括上面我们录制的代码,也都是函数,没有过程之说。也没有工作表代码块,和工作簿代码块,这点和VBA相差还是比较大的。JS的代码都在代码块中。(在写工作表事件代码时,我琢磨了半天,才领悟!!!)
         和我初学VBA一样,给出JS常用代码,代码都有注释


常用代码:(和VBA代码相同,有的就多了一个分号)
1Application.ScreenUpdating=false;    //关闭屏幕刷新
2Application.ScreenUpdating=true;     //打开屏幕刷新
3Range("A65536").End(xlUp).Row;      //A列末行向上第一个有值的行数xlDown
4Range(IV1).End(xlToLeft).Column;       //第一行末列向左第一列有数值之列数xlToLeft
5Worksheets.Add();    //新建工作表
6ActiveSheet.Name="hao123";   //当前工作表改名为“hao123
7Worksheets.Item("hao123").Activate();   //把工作表hao123设置为当前工作表,注意不要忘记括号
8Cells.Item(4,5).Select();     //选中当前工作表的第4行第5列的单元格,另外一种表示法:Range(E5).Select();
9var v=Cells.Item(1,1).Value2;    //A1单元格的值赋值给变量V
10)Cells.Item(3,2).EntireRow.Hidden=true;  //隐藏第3
11Cells.Item(3,2).EntireRow.Hidden=false;  //取消隐藏第3
12)Cells.Item(3,2).EntireColumn.Hidden=true;  //隐藏第2
13Worksheets.Count;    //获取当前工作薄中的工作表数量
14Application.DisplayAlerts=false;     //关闭系统提示对话框
15Application.DisplayAlerts=true;     //打开系统提示对话框
16Sheets.Item("Sheet1").Delete();   //删除指定的工作表
17Workbooks.Open("D:\\新建文件夹\\工作簿1.xlsx");  //打开H盘中的新建文件夹中的工作薄1文件(注意JS中的\\
18Application.ActiveWorkbook.Name   //获取工作薄的名字,即文件名
19Range("a1").CurrentRegion.Columns.AutoFit();    //自动调整列宽
20object.keys(arr);    //数组是一种特殊的object对象,键名固定是从0开始的整数。
21arr.push(a);    //在数组arr的末尾添加数组元素
22arr.push.apply(arr,brr);     //把数组brr一次性追加到数组arr
23var arr=sht.Range("A3:R12").Value2;     //单元格区域变数组
24) Range("A2").Resize(brr.length,6).Value2=brr;    //把二维数组一次性写入单元格区域中
25Object.entries(obj)    //把对象的属性和属性值转化为一个二维数组



评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-15 20:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ctp_119 于 2022-5-16 07:28 编辑

26) Object.keys(obj)      //把对象的属性转化为一维数组
27Object.values(obj)    //把对象的属性值转换为一维数组
28-1ActiveWorkbook.Name  //激活工作簿名字,即当前工作簿名称
28-2ThisWorkbook.Name    //这个工作簿的名字(只有在加载项的时候才和ActiveWorkbook.Name有区别)
28-3Workbooks.Item(1).Name     
28-4Workbooks(1).Name
28-5Workbooks("工作簿1.et").Name    //注意各自的表达
29-1ActiveSheet.Name   //当前工作表名称
29-2Worksheets("Sheet1").Name
29-3Worksheets.Item(1).Name
29-4Worksheets(2).Name
29-5Sheets(2).Name     //注意大小写的写法,初学者最容易出错的点
30-1Range("a1").Select()   //选择A1单元格
30-2Cells(2,1).Select()     //选择第二行,第一列的单元格,即选择A2单元格
30-3Cells.Item(3,4).Select()   //D3单元格被选择的另外一种表达法
30-4Range("a1:E5").Select()
30-5Columns("D").Select()
30-6Columns("c:d").Select()
30-7Range("c:c").Select()
30-8Range("D1").EntireColumn.Select()
30-9Range("A:A,C:C").Select()
30-10Rows("3").Select()
30-11Rows(3).Select()
30-12Range("A4").EntireRow.Select()
30-13Rows("1:5").Select()
30-14Range("2:2,5:5").Select()


不断更新中……

注意:JS中严重区别大小写,并且没有错误提示,这对初学者来说是一种很大的考验和困惑。尤其是习惯写VBA代码的坛友,开始一写JS代码,一运行就报错,,,这是每个要学习JS宏代码的坎,必须要多加练习跨过,自己检查错误,一个关键词,一个变量的检查!!!过了这个坎,就是阳光大道!
JS宏代码,每个语句后面都是以;号结束,WPS宏省略也可以运行,但是建议不要省略。慢慢养成习惯就好了……小伙伴们,让我们一起加油!!!

TA的精华主题

TA的得分主题

发表于 2022-5-15 20:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-5-15 21:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

很好很强大,期待!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-16 07:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
定义变量

1)var a=0;
     var b="string";
2)  let a;
     a=true;
     let b="中华人民共和国";
3)  const π=3.1415925;
它们的区别在于可见性和可变性,var定义的是全局变量,而let是块状级变量,而const定义的是常量,必须声明的时候就得赋值,而且自后不可再给它赋值。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-5-16 11:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
赞一个,学习下
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-22 06:29 , Processed in 1.061490 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表