WPS JS宏教程文档,0基础入门,超详细!!!

WPS JS代码的运行效果

01 JS宏设置

点击左上角【文件】-倒数第2个,点击【选项】-勾选【默认JS开发环境】

  • 方法一:选择【开发工具】-【WPS宏编辑器】

    方法二:按住Alt+F11

02函数

  • WPS JS每条语句后面可以有“;”,也可以没有“;”,程序都可以运行。

  • 函数名可以用中文命名。

  • F5默认会执行最后一个函数,如下代码就会输出MrFlySand-小知识酷

  • alert()就是窗口输出,如:alert("小知识酷")

  • console.log()就是控制台输出,如:console.log("小知识酷")

  • Debug.Print()

  • 注意:在代码中所有标点符号在要英文状态下输入。

function 输出2(){

alert("MrFlySand-小知识酷-520")

}

function 输出(){

alert("MrFlySand-小知识酷")

}

03单元格

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


3.1.1 选择工作表


  • Sheets.Item()是选中工作表,excel默认的第一个工作表名称也是Sheet1。

  • Sheets.Item(2)是选中第2个工作表。圆括号()里面可以是数字如果里面是一个数字n,表示它是第n个表。

  • Sheets.Item("小知识酷的成绩")是选中的是“小知识酷的成绩”工作表,注意:中文小知识酷的成绩要在英文双引号""里面。

3.1.2 Range()选择单元格


  1. Range()选择单元格,Value2意思就是值或元素。

  1. Range("A1").Value2:选择当前工作表(正在使用的工作表)中A1单元格的值

  1. WPS JS可以使用运算符“+”,"A"+2就是A2。注意:"A"&2是错误的语法

function 读取单元格(){

// 输出第1个工作表的A1单元格的值

alert(Sheets.Item(1).Range("A1").Value2)

// 输出工作表名为Sheet2的A2单元格的值

alert(Sheets.Item("Sheet2").Range("A"+2).Value2)

}

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


  • Date()是获取当前时间的函数

  • Sheets.Item(1).Range("A1").Value2 = Date()意思是:第1个的工作表中A1 = 现在的日期

functionFun(){

Sheets.Item(1).Range("A1").Value2 = Date();

alert(Sheets.Item(1).Range("A1").Value2);

}

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


functionMyFun(){

//选中B4单元格Range("B4").Select();

//圆括号里面就是选择B4单元格的文字

(obj=>{

//改变这个字体的颜色

obj.Color = 255; //255红色

})(Selection.Font);

//圆括号里面就是选择B4单元格的内部背景

(obj=>{

//改变这个背景的颜色

obj.Color = 65536; //65536黑色

})(Selection.Interior);

}

3.4 合并单元格


如下代码合并D1:D2单元格

Range("D1:D2").Select();

(obj=>{

obj.Merge(false);

obj.HorizontalAlignment = xlHAlignCenter;

})(Selection);

04 新建工作表

function 新建工作表(){

var sht=Worksheets.Add(null,Sheets(Sheets.Count));

sht.Name="mrflysand的数据分析表"; //工作表的名称

}

05 if判断

  • 如果第1个工作表的A1单元格的值是1,输出“1”和“有1或2”;如果第1个工作表的A1单元格的值不是1或2,输出“没有1和2”。

  • 其中||表示

function 读取单元格(){

// 输出第1个工作表的A1单元格的值

alert(Sheets.Item(1).Range("A1").Value2)

if(Sheets.Item(1).Range("A1").Value2==1 || Sheets.Item(1).Range("A1").Value2==2){

alert("有1或2")

}else{

alert("没有1和2")

}

}

07 输入框

7.1单个值


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

function 输入(){

var num = InputBox("请输入一个数");

alert(num)

}

7.2五个参数


1、提示的内容

2、提示框的标题

3、输入框的默认值

4、输入框横纵坐标轴的位置

function 输入(){

var num = InputBox("请输入名称","提示框","小知识酷",200,200)

alert(num)

}

7.3MsgBox提醒框


当你点击“是”时,num=6,所以输出“恭喜你关注了”;

当你点击“否”时,num=7,所以输出“快去搜索【小知识酷】关注吧”。

function 输入(){

var num = MsgBox("你关注了【小知识酷】吗?",jsYesNo,"提示框")

if(num == 6){

alert("恭喜你关注了")

}else{

alert("快去搜索!");

}

}

08循环

8.1 实例一


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

  1. 步骤1:定义i的初始值

  1. 步骤2:判断i的值是否符合条件,如果符合条件,执行步骤3;如果不符合条件,则结束。

  1. 步骤3:每次要执行的内容1,如一些代码程序

  1. 步骤4:每次要执行的内容2,一般情况下是自增

functionLoop(){

for(var i=1; i<=5; i++){

alert(i)

}

}

运行结果:

1 2 3 4 5

8.2 实例二


functionLoopArr(){

var arr = ["mrflysand","小知识酷","关注不迷路"]

for(var i=0; i<=2; i++){

Sheets.Item(1).Range("A"+(i+1)).Value2 = arr[i]

}

}

运行结果

代码解释说明

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:长度,数组里面元素个数

function 一维数组(){

// 一维数组的定义

arr=["MrFlySand","小知识酷",'QQ',2602629646];

alert("数组里面元素个数:"+arr.length )

// 只在在A1单元格写入MrFlySand// 只是把第一个元素放在单元格中

Sheets.Item(1).Range("A1").Value2 = arr;

// 只在在A6单元格写入MrFlySand// Resize(1,1):第一个1表示只显示1行;第2个1表示数组中第1个元素

Sheets.Item(1).Range("A6").Resize(1,1).Value2 = arr;

// 在A11:C11单元格写入"MrFlySand","小知识酷",'QQ'// Resize(1,4):1表示只显示1行;3表示数组中前第3个元素

Sheets.Item(1).Range("A11").Resize(1,3).Value2 = arr;

// 在A16:D18单元格写入"MrFlySand","小知识酷",'QQ',2602629646// Resize(3,arr.length):3表示显示3行;arr.length表示数组中元素的个数,及长度为4// 选中的格子读入的数据是一个一维数组

Sheets.Item(1).Range("A16").Resize(3,arr.length).Value2 = arr;

}

10.3二维数组的输出


输出下方的表格

代码说明:

  • 在WpsJs中数组的下标是从0开始的

  • 二维数组的定义格式:函数名=[["1","2"],["3","4"],["5","6","7"]]就比如在1个数组(1个年级)中有3个数组(3个班),且这3个数组(3个班)中有2个不同的学生。

function 二维数组(){

// 二维数组的定义

arr=[["MrFlySand","小知识酷",'QQ',2602629646],[2602629646,'QQ',"小知识酷","MrFlySand"]];

// 输出二维数组的行数和列数alert("行数:" + arr.length + ",列数:"+arr[0].length)

// 输出二维数组的2行3列的值/输出第2个学生的英文名alert("2行3列的值:" + arr[1][3]);

// 输出二维数组的1行/输出第1个学生的所有个人信息Sheets.Item(1).Range("A1").Resize(1,arr[0].length).Value2 = arr[0]

// 输出二维数组的2行/输出第2个学生的所有个人信息Sheets.Item(1).Range("A2").Resize(1,arr[0].length).Value2 = arr[1]

}

10.4数组输出行和输出列


  • arr1是一个一维数组,输出显示的是一横排。

  • arr2是一个二维数组,输出显示的是一竖排。

functionarr(){

let arr= ["MrFlySand","小知识酷",'QQ',2602629646];

Sheets.Item(1).Range("A1").Resize(1,arr.length).Value2 = arr;

let arr1= ["MrFlySand","小知识酷",'QQ',2602629646];

Sheets.Item(1).Range("A3").Resize(4,4).Value2 = arr1;

let arr2 = [["MrFlySand"],["小知识酷"],['QQ'],[2602629646]];

Sheets.Item(1).Range("A8").Resize(4,1).Value2 = arr2;

}

以上代码输出内容

10.5使用循环输出列


functionarr2(){

let arr= ["MrFlySand","小知识酷",'QQ',2602629646];

for(var i=1,j=0; j<=arr.length; i++,j++){

Sheets.Item(1).Range("A"+i).Value2 = arr[j];

}

}

12 录制宏

  1. 当我们需要进行某些操作,却不知道代码时,可以进行“录制宏”来查看它的源码。

  1. 操作步骤:点击【开发工具】-【录制新宏】-【查看代码】

湖北省
浏览 12630
6
9
分享
9 +1
11
6 +1
全部评论 11
 
韩旭
function CheckBox1_Click() { alert("正确") } 要“正确”两个字大一点,怎么办?
· 江苏省
回复
Grevon叫立夫呀
之前遇到过将内容显示为html的段落。比如 var a = " 正确 "; alert(a) ;
· 北京
回复
 
韩旭
咋没有后继的
· 江苏省
回复
 
小杨
// 在A16:D18单元格写入"MrFlySand","小知识酷",'QQ',2602629646// Resize(3,arr.length):3表示显示3行;arr.length表示数组中元素的个数,及长度为4// 选中的格子读入的数据是一个一维数组 Sheets.Item(1).Range("A16").Resize(3,arr.length).Value2 = arr; 3表示显示3行; 若是我只要显示第二列到第三列,应该什么写
· 湖南省
回复
 
WPS 冲浪队长
WPS 冲浪队长

社区管理员

原来还可以这样玩,诚邀老师加入社区创作者俱乐部 可添加我的企微了解~
· 广东省
回复
 
欧阳钦云
欧阳钦云

@金山办公

hi,内容中的超链接是什么内容呀? 打开无法查看,坐等老师作品
· 广东省
1
回复
MrFlySand-飞沙
文中的超链接在哪个章节呀,没看到有超链接
· 湖北省
回复
 
徐汉
打卡
· 辽宁省
1
回复
MrFlySand-飞沙
· 湖北省
回复