WPS JS宏教程文档,0基础入门,超详细~
WPS JS代码的运行效果
01 JS宏设置
- 点击左上角【文件】-倒数第2个,点击【选项】-勾选【默认JS开发环境】
- 方法一:选择【开发工具】-【WPS宏编辑器】 方法二:按住 Alt+F11
↓ ↓ ↓ ↓ ↓点击下方链接,后台回复“WPS JS”获取更多JS教程
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()
选择单元格 - Value2 意思就是值或元素
-
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 = 现在的日期
function Fun(){
Sheets.Item(1).Range("A1").Value2 = Date();
alert(Sheets.Item(1).Range("A1").Value2);
3.3设置单元格的颜色和背景
function MyFun(){
//选中B4单元格
Range("B4").Select();
//圆括号里面就是选择B4单元格的文字
(obj=>{
//改变这个字体的颜色
obj.Color = 2;
})(Selection.Font);
//圆括号里面就是选择B4单元格的内部背景
(obj=>{
//改变这个背景的颜色
obj.Color = 65536;
})(Selection.Interior);
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")
06 switch语句
因为a的值是1,所以匹配case 1,输出A;如果a=3,则输出C;如果a=其他值,输出none
function Desfee(){
var a = 1;
switch (a){
case 1:
alert("A")// 当表达式的结果等于 1 时,则执行该代码
break;
case 3:
alert("C")// 当表达式的结果等于 3 时,则执行该代码
break;
default :
alert("none") // 如果没有与表达式相同的值,则执行该代码
alert(Desfee)
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的初始值 2. 步骤2:判断i的值是否符合条件,如果符合条件,执行步骤3;如果不符合条件,则结束。 3. 步骤3:每次要执行的内容1,如一些代码程序 4. 步骤4:每次要执行的内容2,一般情况下是自增
function Loop(){
for(var i=1; i<=5; i++){
alert(i)
运行结果:
1 2 3 4 5
8.2 实例二
function LoopArr(){
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.1一维数组的输出
function arr(){
let arr= ["MrFlySand","小知识酷",'QQ',2602629646];
Sheets.Item(1).Range("A1").Resize(1,arr.length).Value2 = arr;
输出内容
10.2一维数组的遍历
function Fun(){
// 定义数组
const arr = new Set(["MrFlySand","小知识酷",'QQ',2602629646]);
//i表示值,arr表示在这个数组中遍历
for (let i of arr) {
Console.log(i);
function Fun1(){
let arr= ["MrFlySand","小知识酷",'QQ',2602629646];
// 定义数组
//n表示值,arr表示在这个数组中遍历
for(let n of arr){
Console.log(n)
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
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
是一个二维数组,输出显示的是一竖排。
function arr(){
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使用循环输出列
function arr2(){
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];
11类的使用
// 声明类
class Arms{
// 构造函数,给属性传值
constructor(name, attack) {
this.name = name;
this.attack = attack;
//返回当前装备的属性值
toString() {
return '名称:' + this.name + ', 攻击力:' + this.attack + '';
function 类(){
//定义类
let arr=new Arms("AK47-MrFlySand",88)