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

javascript宏定义 js宏和vba_wps

Js

true/false

javascript宏定义 js宏和vba_wps_02

更多资料查阅相关文档

1.2.运算符差异

运算符

VBA

JS

连接符

&

+

判断符

=

==

赋值符号

=

=

更多资料查阅相关文档

1.3.正则表达式

1.3.1.For循环

For循环


VBA


javascript宏定义 js宏和vba_前端_03

JS

javascript宏定义 js宏和vba_javascript_04

1.3.1.While循环

While循环


VBA

javascript宏定义 js宏和vba_开发语言_05

JS

javascript宏定义 js宏和vba_javascript_06

更多资料查阅相关文档

1.4. 其他

1.4.1.With方法

JS 与VBA不一致,需要写全对象,参考如下

宏语言


VBA

javascript宏定义 js宏和vba_javascript_07

JS

javascript宏定义 js宏和vba_wps_08

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 直接传参和指定参数传参

方式


直接传参

直接在函数后按顺序依次填入对应参数,如:

javascript宏定义 js宏和vba_开发语言_09

指定传参

传参格式: 参数名:=参数值,如:

javascript宏定义 js宏和vba_前端_10

JS 直接传参和指定参数传参

方式




直接传参

直接在函数后按顺序依次填入对应参数,如:

javascript宏定义 js宏和vba_开发语言_11

指定传参

以Json的格式传入对应参数,如:

javascript宏定义 js宏和vba_开发语言_12

2.WPS转换规则

2.1.监听事件

定义有细微区别,建议在JS宏编辑器中重新定义监听事件,如下图:

javascript宏定义 js宏和vba_javascript_13


注意:在ET(表格)中VBA可以对不同的Sheet进行不同的监听

javascript宏定义 js宏和vba_javascript_14


JS需要进行区分表格来实现同样效果

javascript宏定义 js宏和vba_wps_15

3.转换案例

[金山文档] VBA转JS例:合并表格.zip https://kdocs.cn/l/skctrwE0fKto (Demo密码) rsa

转换说明:

Event: 监听事件

Button 按钮事件

javascript宏定义 js宏和vba_开发语言_16