记录wps js 宏学习过程中积累的一些函数模板

目前只接触了表格宏

包括建立子表,自定义函数,公式之类的,还有一些宏录制实现不了的功能。

​
function 工作表练习()
{
//	for(var i=10;i>=1;i--)
//	{
//		var a=Sheets.Add(null,Sheets("Sheet1"))
//		a.Name=i;//子表名字
		a.Range("b3").Value2=66;//写入数值
//	}
	
//    Sheets.Add(undefined, Sheets("Sheet1"), 10, undefined);//后面新增子表


//    Sheets.Item("Sheet59").Activate();//更改子表格名字
//	ActiveSheet.Name = "表格";

//Sheets.Item("Sheet64").Activate();//子表删除
//	ActiveWindow.SelectedSheets.Delete();

//for (var i=1;i<=Sheets.Count;i++)//删除I其他子表
//{
//	if(Sheets(i).Name!="Sheet1")
//	{
//		Sheets(i).Delete(true);//参数的意思:忽略内容提示,直接删除
//	}
//}
	
}

function 单元格赋值()
{
	var a=Range("A1:C5");
	a.Formula = "123";
	a.HorizontalAlignment = xlHAlignCenter;//水平居中
	Range('b4').Formula='666';
}

function 单元格颜色()
{
	for(var s of Range('a1:c5'))
	{
		if(s.Value2==666)
		{
			s.Interior.Color=255;
		}
		
		Range('d20').Font.Color=255//字体颜色
		
		Range('c3:c5').Interior.ThemeColor=9;
		
//		Range('b2:c4').Clear();//清除区域全部内容
	}
}

function 拷贝区域()
{
	Range('a1:c5').Copy(Range('e10'));
	Range('a1:c5').Copy(Sheets('Sheet188').Range('e10'));
}

function 位移()
{
	Range('a1:c4').Offset(20,7).Value2=Range('a1:c4').Value2;
	
	var m=55
	Range('a1:c4').Offset(25,7).Value2=m
}


function 清除选中区域内容快捷()
{
	Selection.Clear();
}

function 切换子表赋值()
{
	Sheets.Item(2).Range('e'+6).Value2=Date();
	Sheets.Item('Sheet188').Range('f14').Value2='天元'
}

function 窗口输出时间()
{
	alert('此时此刻:'+Date())
}

function 查找值()//find 顺序查找到一个值后即返回
{
	for (var i=0;i<=10;i++)
	{
		var m=10+i
		Range('b'+m).Value2=2*i
	}
	Range("b10:b20").Find(16).Interior.Color=255
	Range('b10:b20').Find(18).Offset(0,2).Value2='我前面两格是18'//offset函数参数(行,列)
	Range('b10:b20').Find(12).Offset(0,-1).Value2='我后面是12'
}

function fight()
{
	if (typeof(Range('b15').Value2!=Number))
	{
		Range('b15').Value2=0
	}
	Range('b15').Value2+=1.5
	Range('b15').Offset(-1,2).Value2='白班次数'
		Range('b15').Offset(0,2).Value2++
		if(Range('b15').Value2==1.5)
		{
			Range('b15').Offset(0,2).Value2=1
		}
	
}

function 当前选中单元格()
{
	Selection.Value2='bingo!!!'
}

function 值类型(r)
{
	var a=typeof(r.Value2)
	return a
	
}


function 自定义函数()//先创建数据表,结合下一个函数做示范
{
	Range("A34").Select();
	Selection.Formula = "张三";
	Range("A33").Select();
	Selection.Formula = "姓名";
	Range("A35").Select();
	Selection.Formula = "李四";
	Range("A36").Select();
	Selection.Formula = "王麻子1";
	Selection.AutoFill(Range("A36:A41"), xlFillDefault);
	Range("A36:A41").Select();
	Range("B33").Select();
	Selection.Formula = "工资";
	Range("B34").Select();
	Selection.Formula = "5000元";
	Selection.AutoFill(Range("B34:B41"), xlFillDefault);
	Range("B34:B41").Select();
	Range("B42").Select();//创建数据表

}
function 求和(R)
{
	var sum=0
	for(var a of R)
	{
		if(typeof(a.Value2)=='number')//无单位数值类型
		{
			a=String(a.Value2)//转为字符串类型
			var n=[...a]
		}
		else if(typeof(a.Value2)=='undefined')//未定义类型
		{
			var n='0'
		}
		else
		{
			var n=[...a.Value2]//默认为字符串类型(带单位数值)
		}
		
		var s=''
		for(var i=0;i<n.length;i++)
		{
			if(n[i]>-1)//取出字符串中的数值
				{
					s+=n[i]
				}
		}
		sum+=Number(s)
	}
	return sum+'rmb'
}

function 合并单元格()
{
	Range('f1:g1').Merge(false)//合并 
	
}

function 查找()
{
	Cells.Find('订单产品数量').Offset(1,0).Formula='产品一'//全表查找数据(第一个数据)并在附近赋值
//	Cells.Find('订单产品数量').Offset(1,1).Offset(0,-1).Formula='产品数量'//合并单元格附近查找doge
}

function 准备开始()//带参数的公式
{
	Columns.Item("A:A").Select();
	Range("A2").Activate();
	Columns.Item("B:C").Insert(-4159, undefined);
	Columns.Item("B:C").Select();
	Range("A1").Activate();
	
	Range('b2').Formula='白班(个)'
	Range('c2').Formula='晚班(个)'
	
	Range('g3:h21').Formula=''
	Range('j3:j21').Formula=''
	
	for(var i=3;i<=21;i++)//绕了半天,终于把自定义公式做出来了,确实很丑,哈哈
	{
		var m='B'+i
		var n='C'+i
		var x=m+'*2+'+n+'*3.5'
		Range('D'+i).Formula='='+x
	}
}





​

一些事件响应

//新建(激活)工作表响应
function Application_SheetActivate(Sh)
{
	MsgBox("您激活了工作表:"+Sh.Name)
}

//新建工作簿响应
function Application_NewWorkbook(Wb)
{
	MsgBox("您新建了工作簿:"+Wb.Name)
}

//删除任意工作表
function Application_SheetBeforeDelete(Sh)
{
	MsgBox("您即将删除工作表:"+Sh.Name)
} 

//双击响应
//function Application_SheetBeforeDoubleClick(Sh, rg, cancel)
//{
//	if (Target.Address() == "$A$1")
//		Cancel.Value = true;
//} 

//右击响应
//function Application_SheetBeforeRightClick(Sh, rg, cancel)
//{
//	if (Target.Address() == "$A$1")
//		Cancel.Value = true;
//}

//工作表计算响应
//function Application_SheetCalculate(Sh)
//{
//	MsgBox("工作表正在计算:"+Sh.Name)
//} 

//修改响应
//function Application_SheetChange(Sh, rg)
//{
//	MsgBox("工作表:" + Sh.Name + "。区域:"+Target.Address() + "。发生了修改")
//}

//窗口大小改变
//function Application_WindowResize(Wb, Wn)
//        { MsgBox(
//        "窗口\""+ Wn.Caption + "\"大小发生了改变。") } 


//工作簿保存触发事件
function Application_WorkbookAfterSave(Wb, Success)
{
	if (Success)
	{
		MsgBox("文档被成功保存!")
	}
}

//工作簿关闭触发事件
function Application_WorkbookBeforeClose(Wb, Cancel)
{
	var ret = MsgBox("工作簿:"+ Wb.Name+"正在关闭。是否取消?", jsYesNo);
	if (ret == jsResultYes)
		Cancel.Value = true;
} 

//工作簿打印触发事件
function Application_WorkbookBeforePrint(Wb, Cancel)
{
	var ret = MsgBox("工作簿:"+ Wb.Name+"即将打印。是否取消?", jsYesNo);
	if (ret == jsResultYes)
		Cancel.Value = true;
}

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值