WPS文件中如何运行代码? wps表格运行代码的教程
脚本之家
wps软件为用户带来了许多的便利和好处,这是因为在wps软件中用户可以编辑各种各样的文件,并且其中的功能有着一些热门办公软件的支持,因此wps软件深受用户的喜爱,当用户在wps软件中编辑表格文件时,就可以根据自己的需求来找到相关功能完成表格的编辑任务,总的来说能够让用户避免许多没有必要的麻烦,最近小编看到有用户问到wps表格如何运行代码的问题,这个问题其实很好解决,用户直接在菜单栏中找到开发工具,接着选择其中的查看代码选项即可解决问题。
方法步骤
1.用户在电脑桌面上打开wps软件,并来到表格的编辑页面上来进行设置
2.在页面上方的菜单栏中点击开发工具选项,将会显示出相关的选项卡,用户选择其中的查看代码选项
3.将会弹出相关的选项卡中点击运行选项,用户点击位于首位的运行子过程/用户窗体选项
4.将会打开宏窗口,用户设置好宏名称按下创建按钮就可以了
5.这时将会打开代码编辑窗口,用户按照自己的需求来输入代码即可解决问题
wps宏代码分享
打开宏编辑器和JS代码调试
工具-》开发工具-》WPS宏编辑器
左边是工程区,当打开多个excel时会有多个,要注意不要把代码写到其他工作簿去了
右边是代码区
宏是js语言,因此变量或者方法可以网上搜索。比如搜索js变量、js数组方法等。
在语句行号前面点击,可以打断点。
使用Console.log(“你好”)打印文字、变量值等
代码可以使用F11可以逐语句运行,使用F10可以逐过程运行,跳出等
也可以监视变量值
数据类型
数值分为整数和浮点数,都是number类型
var a=Math.trunc(5.984) //截取整数 var b=Math.random() //生成随机小数 var c=Math.pow(5,2) //乘幂 var d=Math.max(3,5) //求最大值 var d=Math.min(3,5) //求最小值
字符串是string类型
var a="3.14" var b="hello\nworld" var c=a+b //字符串相加,会变成字符串连接
字符串转数值
var a="3" var b=5 b=Number(a)
数值转字符串
var a=3.14 var b=String(a)
进制转换
var a=12 var b=a.toString(2) //转换成二进制,结果为字符串类型 var b=a.toString(16) //转换成十六进制,结果为字符串类型
变量申明和赋值
变量有三种声明变量的方式const、var、let
- const 常量
- let 变量申明(作用域更小)
- var 变量申明(作用域更大)
- var a;//申明单个变量
- var b,c,d;//申明多个变量
- var e=1,f=2,g=3.2//申明多个变量并赋值数据类型
单元格边界获取
得到当前有数据内容的单元格行数
像上面的表格,
如果选中A1单元格,按CTRL+方向右键就会跳到F1,按CTRL+方向下键就会跳到A9
如果选中A12单元格,按CTRL+方向右键就会跳到F12,按CTRL+方向下键就会跳到A20
就可以转换成代码:
Range("A1").End(xlToRight).Select(); Range("A1").End(xlDown).Select(); Range("A12").End(xlToRight).Select(); Range("A12").End(xlDown).Select(); var a=Range("A1").End(xlToRight).Column; var b=Range("A1").End(xlToRight).Row;
自动填写表格例程
//测试函数 function test(){ if(Selection.Column==1 && Selection.Count==1){ Range('D7').Value2=Selection.Value2 } else if(Selection.Column==2 && Selection.Count==1){ Range('D8').Value2=Selection.Value2 } }
写入上面代码,如果选中第1列并且选中单元格数量是1个,就让D7单元格值等于选中单元格。如果选中第2列并且选中单元格数量是1个,就让D8单元格值等于选中单元格。
做一个按钮来允许宏
按钮可以输入文字,给按钮指定宏,宏名字就是test。
然后我们选中第一列的一个单元格,再点击按钮,D7就会自动赋值了。
把工作表名字改成“测试表1”
然后加如下代码
function Workbook_SheetSelectionChange(Sh,Target) { if(Sh.Name=='测试表1'){ test() } }
Workbook_SheetSelectionChange是整个工作簿的回调函数,当选择单元格发生变化的时候就会调用。调用的时候判断当前工作表是不是“测试表1”,如果是就自动运行test宏。
这样就不需要去点按钮了,每次改变选择的单元格就会自动运行。
字符串
数组
arr=Range('A1:C5').Value2
就把上面选中单元格的内容保存到数组arr中了,表格下标从0开始,即arr[0][0]保存的时A1单元格内容
function test2(){ const arr=ThisWorkbook.Sheets('测试表1').Range('A5').CurrentRegion.Value2 arr.reverse() Range('F5').Resize(arr.length,arr[0].length).Value2=arr }
CurrentRegion是当前单元格挨着的有内容的单元格全部选中,类似于选中A5单元格然后按alt+A
代码第一行就把上面选中的所有单元格内容保存到数组arr中了
arr.reverse()是把数组内容倒过来
Resize(行数,列数) 是指定单元格行数和列数。
arr.length就是数组的行数。arr[0].length是指的数组第一行的列数
代码第3行就是把数组赋值给F5打头的单元格区域
function submitData(){ if(checkData()==true){ //自己写个函数来检查数据是否异常 ==true可以省略,通常只写if(checkData()) const arr=Range('C6').CurrentRegion.Value2 const Data=[] //准备一个数组来装数据 const targetRow=Sheets('操作记录').Range('A65535').End(3).Row+1 //先取得数据表的最大非空行位并+1作为要写入数据的行位 let r=0//等下要用r来记录是第几行数量,方便写金额公式的时候判断行位 for(i=4;i<=11;i++){ if(arr[i][1]){ //如果单元格有内容 //金额写成公式字符串,这里使用反引号,在键盘左上角数字1的左侧,反引号里变量可以用${}标出 let strAmount=`=D${targetRow+r}*F${targetRow+r}` //假如r=0,targetRow=2,这里就是'D2*F2' r++//遇到数量非空行r自增1假如有三行数据,到第三行时r=2,公式就是 D4*F4 //接下来按数据表的列 构建一个数组 //人员 领货日期 领货型号 数量 xxx单价 金额 备注 let rowItem=[arr[1][1],arr[0][1],arr[2][1],arr[i][1],arr[2][3],arr[i][2],strAmount,arr[i][3]] //利用push方法把上面的数组一行一行塞进Data构成二维数组 Data.push(rowItem) } } Sheets('操作记录').Range(`A${targetRow}`).Resize(Data.length,Data[0].length).Value2=Data Sheets('测试表1').Range('D7:D8').ClearContents() Sheets('测试表1').Range('D7').Select() }else{ alert('信息不全') } }
单元格为空检查
const DateNotNull= Range('D6').Value2 !=null
打印数组内容
var arr=Range("a2:b5"). Value2 Console.log(JSON. stringify(arr))
数据输入框、提示框
// InputBox("请输入分数") //输入框 // let num=InputBox("请输入分数","提示",100,100,200) //第2参数是标题;第3参数是默认值;第4/5参数是窗口坐标 // alert(num) //消息提示框 // MsgBox("你好") MsgBox("你好",jsYesNo) //带是/否按钮的消息框 MsgBox("你好",jsYesNoCancel) //带是/否/取消按钮的消息框 MsgBox修改第2参数还支持很多样式
以上就是小编对用户提出问题整理出来的方法步骤,用户从中知道了大致的操作过程为点击开发工具——查看代码——运行——运行子过程/用户窗体——创建——输入代码这几步,方法简单易懂,希望大家喜欢,请继续关注脚本之家。