当前位置:   article > 正文

WPS JS宏教程文档,0基础入门,超详细~_wps js 手册

wps js 手册

01 JS宏设置

  • 点击左上角【文件】-倒数第2个,点击【选项】-勾选【默认JS开发环境】
  • 方法一:选择【开发工具】-【WPS宏编辑器】。
  • 方法二:按住Alt+F11

效果图

 点击下方链接,后台回复“WPS JS”获取更多JS教程

【WPS JS教程】时间戳转换时间https://mp.weixin.qq.com/s?__biz=MzkzMjE5OTMwOA==&mid=2247489402&idx=1&sn=db4ec7c088576f0601fe8dabc057b7a9&chksm=c25e3999f529b08f194f0decaf93ddcc5d787e9b57ceedf59a7ed225dd4d7faefc967a3a0eeb&token=745374821&lang=zh_CN#rd

02函数

  • WPS JS每条语句后面可以有“;”,也可以没有“;”,程序都可以运行。
  • 函数名可以用中文命名。
  • F5默认会执行最后一个函数,如下代码就会输出MrFlySand-公众号:小知识酷
    • alert()就是窗口输出,如:alert("微信公众号:小知识酷")
    • Console.log()就是控制台输出,如:Console.log("微信公众号:小知识酷")
    • Debug.Print()
  • 注意:在代码中所有标点符号在要英文状态下输入。
  1. function 输出2(){
  2. alert("MrFlySand-公众号:小知识酷-520")
  3. }
  4. function 输出(){
  5. alert("MrFlySand-公众号:小知识酷")
  6. }

03单元格

3.1读取单元格/输出单元格

3.1.1选择工作表

  • Sheets.Item()是选中工作表,excel默认的第一个工作表名称也是Sheet1。
  • Sheets.Item(2)是选中第2个工作表。圆括号()里面可以是数字如果里面是一个数字n,表示它是第n个表。
  • Sheets.Item("公众号:小知识酷的成绩")是选中的是“公众号:小知识酷的成绩”工作表,注意:中文公众号:小知识酷的成绩要在英文双引号""里面。

3.1.2选择单元格

  • Range()选择单元格
  • Value2意思就是值或元素
  • WPS JS可以使用运算符“+”,"A"+2就是A2。注意:"A"&2是错误的语法
  1. function 读取单元格(){
  2. // 输出第1个工作表的A1单元格的值
  3. alert(Sheets.Item(1).Range("A1").Value2)
  4. // 输出工作表名为Sheet2的A2单元格的值
  5. alert(Sheets.Item("Sheet2").Range("A"+2).Value2)
  6. }

3.2运用库函数和给单元格赋值

  • Date()是获取当前时间的函数
  • Sheets.Item(1).Range("A1").Value2 = Date()意思是:第1个的工作表中A1 = 现在的日期
  1. function Fun(){
  2. Sheets.Item(1).Range("A1").Value2 = Date();
  3. alert(Sheets.Item(1).Range("A1").Value2);
  4. }

3.3设置单元格的颜色和背景

  1. function MyFun(){
  2. //选中B4单元格
  3. Range("B4").Select();
  4. //圆括号里面就是选择B4单元格的文字
  5. (obj=>{
  6. //改变这个字体的颜色
  7. obj.Color = 2;
  8. })(Selection.Font);
  9. //圆括号里面就是选择B4单元格的内部背景
  10. (obj=>{
  11. //改变这个背景的颜色
  12. obj.Color = 65536;
  13. })(Selection.Interior);
  14. }

04 新建工作表

  1. function 新建工作表(){
  2. var sht=Worksheets.Add(null,Sheets(Sheets.Count));
  3. sht.Name="mrflysand的数据分析表"; //工作表的名称
  4. }

05 if判断

  • 如果第1个工作表的A1单元格的值是1,输出“1”和“有1或2”;如果第1个工作表的A1单元格的值不是1或2,输出“没有1和2”。
  • 其中||表示
  1. function 读取单元格(){
  2. // 输出第1个工作表的A1单元格的值
  3. alert(Sheets.Item(1).Range("A1").Value2)
  4. // 判断语句
  5. if(Sheets.Item(1).Range("A1").Value2==1 || Sheets.Item(1).Range("A1").Value2==2){
  6. alert("有1或2")
  7. }else{
  8. alert("没有1和2")
  9. }
  10. }

06 switch语句

因为a的值是1,所以匹配case 1,输出A;如果a=3,则输出C;如果a=其他值,输出none

  1. function Desfee(){
  2. var a = 1;
  3. switch (a){
  4. case 1:
  5. alert("A")// 当表达式的结果等于 1 时,则执行该代码
  6. break;
  7. case 3:
  8. alert("C")// 当表达式的结果等于 3 时,则执行该代码
  9. break;
  10. default :
  11. alert("none") // 如果没有与表达式相同的值,则执行该代码
  12. }
  13. alert(Desfee)
  14. }

07 输入框

7.1单个值

InputBox就是输入函数,双引号里面的内容表示提示语

  1. function 输入(){
  2. var num = InputBox("请输入一个数");
  3. alert(num)
  4. }

7.2五个参数

1、提示的内容
2、提示框的标题
3、输入框的默认值
4、输入框横纵坐标轴的位置

  1. function 输入(){
  2. var num = InputBox("请输入公众号名称","提示框","小知识酷",200,200)
  3. alert(num)
  4. }

7.3MsgBox提醒框

当你点击“是”时,num=6,所以输出“恭喜你关注了”;
当你点击“否”时,num=7,所以输出“快去微信公众号搜索【小知识酷】关注吧”。

  1. function 输入(){
  2. var num = MsgBox("你关注了【小知识酷】公众号吗?",jsYesNo,"提示框")
  3. if(num == 6){
  4. alert("恭喜你关注了")
  5. }else{
  6. alert("快去微信公众号搜索【小知识酷】关注吧");
  7. }
  8. }

08循环

8.1 实例一

for(步骤1; 步骤2; 步骤4){步骤3},for循环的执行步骤:

  1. 步骤1:定义i的初始值
  2. 步骤2:判断i的值是否符合条件,如果符合条件,执行步骤3;如果不符合条件,则结束。
  3. 步骤3:每次要执行的内容1,如一些代码程序
  4. 步骤4:每次要执行的内容2,一般情况下是自增
  1. function Loop(){
  2. for(var i=1; i<=5; i++){
  3. alert(i)
  4. }
  5. }

运行结果:

1 2 3 4 5

8.2 实例二

  1. function LoopArr(){
  2. var arr = ["公众号","小知识酷","关注不迷路"]
  3. for(var i=0; i<=2; i++){
  4. Sheets.Item(1).Range("A"+(i+1)).Value2 = arr[i]
  5. }
  6. }

运行结果

代码解释说明

i=0时,"A"+(i+1)=A1,Range("A1"),arr[0]="公众号"
i=1时,"A"+(i+1)=A2,Range("A2"),arr[1]="小知识酷"
i=2时,"A"+(i+1)=A3,Range("A3"),arr[2]="关注不迷路",循环就会停止。

09数组

  • Resize(row,list)选中多个单元格,相当于一个二维数组。Resize(1,5)表示1行5列的一维数组;Resize(2,5)表示2行5列的二维数组;Resize(5,5)表示5行5列的二维数组。
    • row:选中多少行
    • list:选中多少列
  • array.length:数组的长度
    • array:数组名
    • length:长度,数组里面元素个数
  1. function 一维数组(){
  2. // 一维数组的定义
  3. arr=["MrFlySand","公众号:小知识酷",'QQ',2602629646];
  4. alert("数组里面元素个数:"+arr.length )
  5. // 只在在A1单元格写入MrFlySand
  6. // 只是把第一个元素放在单元格中
  7. Sheets.Item(1).Range("A1").Value2 = arr;
  8. // 只在在A6单元格写入MrFlySand
  9. // Resize(1,1):第一个1表示只显示1行;第21表示数组中第1个元素
  10. Sheets.Item(1).Range("A6").Resize(1,1).Value2 = arr;
  11. // 在A11:C11单元格写入"MrFlySand","公众号:小知识酷",'QQ'
  12. // Resize(1,4):1表示只显示1行;3表示数组中前第3个元素
  13. Sheets.Item(1).Range("A11").Resize(1,3).Value2 = arr;
  14. // 在A16:D18单元格写入"MrFlySand","公众号:小知识酷",'QQ',2602629646
  15. // Resize(3,arr.length):3表示显示3行;arr.length表示数组中元素的个数,及长度为4
  16. // 选中的格子读入的数据是一个一维数组
  17. Sheets.Item(1).Range("A16").Resize(3,arr.length).Value2 = arr;
  18. }

10.1一维数组的输出

  1. function arr(){
  2. let arr= ["MrFlySand","公众号:小知识酷",'QQ',2602629646];
  3. Sheets.Item(1).Range("A1").Resize(1,arr.length).Value2 = arr;
  4. }

输出内容

10.2一维数组的遍历

  1. function Fun(){
  2. // 定义数组
  3. const arr = new Set(["MrFlySand","公众号:小知识酷",'QQ',2602629646]);
  4. //i表示值,arr表示在这个数组中遍历
  5. for (let i of arr) {
  6. Console.log(i);
  7. }
  8. }
  9. function Fun1(){
  10. let arr= ["MrFlySand","公众号:小知识酷",'QQ',2602629646];
  11. // 定义数组
  12. //n表示值,arr表示在这个数组中遍历
  13. for(let n of arr){
  14. Console.log(n)
  15. }
  16. }

10.3二维数组的输出

  • 输出下方的表格

代码说明:

  • 在WpsJs中数组的下标是从0开始的
  • 二维数组的定义格式:函数名=[["1","2"],["3","4"],["5","6","7"]]就比如在1个数组(1个年级)中有3个数组(3个班),且这3个数组(3个班)中有2个不同的学生。
    • arr.length获取1个数组(1个年级)中有几个数组(n个班)
    • arr[0].length获取1班的人数,有2个学生,分别是1、2
    • arr[1].length获取2班的人数,有2个学生,分别是3、4
    • arr[2].length获取3班的人数,有3个学生,分别是5、6、7
  1. function 二维数组(){
  2. // 二维数组的定义
  3. arr=[["MrFlySand","公众号:小知识酷",'QQ',2602629646],[2602629646,'QQ',"公众号:小知识酷","MrFlySand"]];
  4. // 输出二维数组的行数和列数
  5. alert("行数:" + arr.length + ",列数:"+arr[0].length)
  6. // 输出二维数组的23列的值/输出第2个学生的英文名
  7. alert("2行3列的值:" + arr[1][3]);
  8. // 输出二维数组的1/输出第1个学生的所有个人信息
  9. Sheets.Item(1).Range("A1").Resize(1,arr[0].length).Value2 = arr[0]
  10. // 输出二维数组的2/输出第2个学生的所有个人信息
  11. Sheets.Item(1).Range("A2").Resize(1,arr[0].length).Value2 = arr[1]
  12. }

10.4数组输出行和输出列

  • arr1是一个一维数组,输出显示的是一横排。
  • arr2是一个二维数组,输出显示的是一竖排。
  1. function arr(){
  2. let arr= ["MrFlySand","公众号:小知识酷",'QQ',2602629646];
  3. Sheets.Item(1).Range("A1").Resize(1,arr.length).Value2 = arr;
  4. let arr1= ["MrFlySand","公众号:小知识酷",'QQ',2602629646];
  5. Sheets.Item(1).Range("A3").Resize(4,4).Value2 = arr1;
  6. let arr2 = [["MrFlySand"],["公众号:小知识酷"],['QQ'],[2602629646]];
  7. Sheets.Item(1).Range("A8").Resize(4,1).Value2 = arr2;
  8. }

以上代码输出内容

10.5使用循环输出列

  1. function arr2(){
  2. let arr= ["MrFlySand","公众号:小知识酷",'QQ',2602629646];
  3. for(var i=1,j=0; j<=arr.length; i++,j++){
  4. Sheets.Item(1).Range("A"+i).Value2 = arr[j];
  5. }
  6. }

11类的使用

  1. // 声明类
  2. class Arms{
  3. // 构造函数,给属性传值
  4. constructor(name, attack) {
  5. this.name = name;
  6. this.attack = attack;
  7. }
  8. //返回当前装备的属性值
  9. toString() {
  10. return '名称:' + this.name + ', 攻击力:' + this.attack + '';
  11. }
  12. }
  13. function 类(){
  14. //定义类
  15. let arr=new Arms("AK47-MrFlySand",88)
  16. // 输出类
  17. alert(arr.toString())
  18. Sheets.Item(1).Range("A1").Value2 = arr.toString();
  19. }

>戳我爆炸<
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/742187
推荐阅读
相关标签
  

闽ICP备14008679号