WPS的JS宏基础(一)

基础知识

1、简单的第一个宏

javascript 复制代码
//注意function只能全部用小写
function demo(){
	alert("你好!")
}

2、录制宏生成工资条

javascript 复制代码
function 使用录制宏自动生成代码以JS宏为例()//使用相对引用
{
	Selection.Copy(undefined);
	ActiveCell.Offset(5, 0).Range("A1:M4").Insert(xlShiftDown, undefined);
	Application.CutCopyMode = false;
	ActiveCell.Offset(5, 0).Range("A1:M4").Select();
}


3、JS宏的基础语句

循环语句

javascript 复制代码
function test1(){
	for(var txt of ["春花","秋月","夏风","冬雪"]){
		Console.log(txt)
	}
}
javascript 复制代码
function test2(){
	for(var txt of "java"){//注意这里是逐字母输出
		console.log(txt)
	}
}
javascript 复制代码
function test3()//输出所有工作表名称
{
	for(var shs of Sheets){
		Console.log(shs.Name)
	}
}

分支语句

javascript 复制代码
function test6(){
	for(var sc of Range("a2:b17").Value2){
		Console.log(sc[0]+" = "+sc[1]+"分")//数组的第一序列数为0
		if(sc[1]>=90){
			Console.log("优异")
		}else{
			Console.log("普通")
		}
	}
}

4、基础应用

批量创建工作表、工作簿

javascript 复制代码
function 批量创建工作表2(){
	for (var xingming of Range("a2:a17").Value2){
		if (xingming != ""){
			Worksheets.Add();
			ActiveSheet.Name = xingming[0]
		}
	}
}
javascript 复制代码
function 批量创建工作簿2(){
	for(var jijie of ["春花","秋月","冬雪"]){
		Workbooks.Add();
		ActiveWorkbook.SaveAs("C:/Users/54240/Desktop/新建文件夹/"+jijie);
		//注意是右斜杆,如果是左斜杠应该写成-C:\\Users\\54240\\Desktop\\新建文件夹\\
		ActiveWorkbook.Close()
	}
}
javascript 复制代码
function 批量拆分工作表到工作簿(){
	for (var sh of Sheets){
		sh.Copy();'如果没有指定工作簿,则会自动创建一个新的工作簿'
		ActiveWorkbook.SaveAs("C:/Users/54240/Desktop/新建文件夹/"+sh.Name);
		ActiveWorkbook.Close();
	}
}

判断单元格数据

javascript 复制代码
function test(){
	var Arr1=[];
	var Arr2=[];
	var Arr3=[];
	var Arr4=Range("A2:b17").Value();
	for (var ar of Arr4){
		if (ar[1]>=60){
			Arr1.push(ar);//追加到后面
			Arr2.unshift(ar)//追加到前面
			Arr3.splice(Arr3.length,0,ar)
			//splice()
		}
	}
	if(Arr1.length == 0 || Arr2.length == 0){	//也可以用arr1 == false
		//JS的与(&&)或(||)非(!)
		//JS的=(==)不等于(!=)
		alert("没有数值!")
	}else{
		Range("d2").Resize(Arr1.length,2).Value2= Arr1	//注意arr1为空值的话会出错
		Range("f2").Resize(Arr2.length,2).Value2 = Arr2
		Range("h2").Resize(Arr3.length,2).Value2 = Arr3
	}

}

splice用法
push用法
unshift用法

5、JS变量的申明与赋值

变量就是内存中的一块存储空间,这个空间存储的就是变量的值。为这块空间贴个标签,这个标签就是变量名。三种声明变量的方式:const、var、let、

const 常量

let 变量申明(作用域更小)

var 变量申明(作用域更大)

var a; //申明单个变量

var b,c,d; //申明多个变量

var e=1,f=2,g=3.2 //申明多个变量并赋值数据类型

变量命名方法 示例1 示例2
匈牙利命名法 sName sMingZi
骆驼式命名法 smallFullName xiaoQianMing
帕斯卡命名法 SmallFullName XiaoQianMing
javascript 复制代码
	const pi=3.14;
	Console.log(pi*10);

	let a=10;
	var b=20;
	Console.log(a);
	Console.log(b);
	
	
	{
		let c=1;//let申明的变量作用范围只能在括号里面
		var d=2;
		Console.log(c);
		Console.log(d);
	}
	Console.log(c);
	Console.log(d);

var e;
var f,g,h;
var i=1,j=2,k=3;

var sName="小曾";
let sMingZi="小曾";
相关推荐
定栓1 分钟前
Typescript入门-JSDoc注释及tsconfig讲解
前端·javascript·typescript
anlogic2 分钟前
Java基础 9.10
java·开发语言·算法
yongche_shi7 分钟前
第二篇:Python“装包”与“拆包”的艺术:可迭代对象、迭代器、生成器
开发语言·python·面试·面试宝典·生成器·拆包·装包
小意恩9 分钟前
el-table表头做过滤
前端·javascript·vue.js
fury_12310 分钟前
vue3:触发自动el-input输入框焦点
javascript·vue.js·elementui
小桥风满袖11 分钟前
极简三分钟ES6 - 迭代器Iterator
前端·javascript
Developer-YC14 分钟前
像素图生成小程序开发全解析:从图片上传到Excel图纸
java·javascript·图像处理·微信小程序·excel
Elastic 中国社区官方博客29 分钟前
介绍 Python Elasticsearch Client 的 ES|QL 查询构建器
大数据·开发语言·数据库·python·elasticsearch·搜索引擎·全文检索
Hóng xīng qiáo32 分钟前
swVBA自学笔记014、Lisp适合对SolidWorks进行二次开发吗 ?
开发语言·笔记·lisp
带鱼吃猫1 小时前
C++的诗行:一文读懂C++的继承机制
开发语言·c++·学习·visual studio