WPS VBA宏转JS宏
- 前言
- 1.语法转换规则
- 1.1.常量表达
- 1.2.运算符差异
- 1.3.正则表达式
- 1.3.1.For循环
- 1.3.1.While循环
- 1.4. 其他
- 1.4.1.With方法
- 1.5.函数调用规则
- 1.5.1.VBA与JS括号书写规则
- 1.5.2.入参规则
- 2.WPS转换规则
- 2.1.监听事件
- 3.转换案例
前言
众所周知,WPS在2019版本后为了兼容国产化环境的宏开发功能,适配了一套JS宏,如果原先是VBA宏文件则需要适配运行。先出一版简易的转换文档吧,有不懂的或者没讲到的点小伙伴们可以在下方留言哦。
1.语法转换规则
基本技能:了解VBA与JS的语法
1.1.常量表达
布尔型 | 转换JS时,区分大小写 | 例 |
VBA | True/False | |
Js | true/false | |
更多资料查阅相关文档 |
1.2.运算符差异
运算符 | VBA | JS |
连接符 | & | + |
判断符 | = | == |
赋值符号 | = | = |
更多资料查阅相关文档
1.3.正则表达式
1.3.1.For循环
For循环 | 例 |
VBA | |
JS |
1.3.1.While循环
While循环 | 例 |
VBA | |
JS | |
更多资料查阅相关文档 |
1.4. 其他
1.4.1.With方法
JS 与VBA不一致,需要写全对象,参考如下
宏语言 | 例 |
VBA | |
JS |
1.5.函数调用规则
1.5.1.VBA与JS括号书写规则
- VBA中,如果要获取函数的返回值才用括号括起来
代码示例 | 说明 |
set shape = shapes.Item(1) | ’这里Item为函数,获取返回值赋给shape |
Debug.Print “Hello” | ’这里Print为函数,无需获取返回值 |
- JS 中,所有函数要用括号进行调用。
代码示例 | 说明 |
shape = shapes.Item(1) | ’这里Item为函数,获取返回值赋给shape |
Debug.Print(“Hello”) | ’这里Print为函数,无需获取返回值 |
1.5.2.入参规则
VBA 直接传参和指定参数传参
方式 | 例 |
直接传参 | 直接在函数后按顺序依次填入对应参数,如: |
指定传参 | 传参格式: 参数名:=参数值,如: |
JS 直接传参和指定参数传参 | |
方式 | 例 |
– | – |
直接传参 | 直接在函数后按顺序依次填入对应参数,如: |
指定传参 | 以Json的格式传入对应参数,如: |
2.WPS转换规则
2.1.监听事件
定义有细微区别,建议在JS宏编辑器中重新定义监听事件,如下图:
注意:在ET(表格)中VBA可以对不同的Sheet进行不同的监听
JS需要进行区分表格来实现同样效果
3.转换案例
[金山文档] VBA转JS例:合并表格.zip https://kdocs.cn/l/skctrwE0fKto (Demo密码) rsa
转换说明:
Event: 监听事件
Button 按钮事件