WPS加载项(二)—改着用:宏脚本跑起来
function test(){Range("a1").Value2="hello 加载项!"}
不熟悉开发的会被自我否定,是否需要高深的JavaScript知识?还需要框架、html、css?其实都不是的,主要是使用的环境不一样,有些东西不能省略。function test(){Application.ActiveWorkbook.ActiveSheet.Range("a1").Value2="hello 加载项!"}
加载项因为使用的是网页,所以他还有window的对象。而wps本身就和jsa宏里面的一样,顶层对象是Application(完整应该是这样wps.Application),环境不一样,所以不能省略,如上图,都需要写出来就基本不会有问题。以下列举几个目前我更改过程中常遇到的需要特别注意的地方:|
宏 |
加载项 |
区别 |
|
ThisWorkbook |
Application.ThisWorkbook |
Application |
|
Workbooks |
Application.Workbooks |
|
|
sht.Sheets(“汇总表”) |
sht.Sheets.Item(“汇总表”) |
Item |
|
fd=FileDialog(msoFileDialogFolderPicker) |
fd=Application.FileDialog(Application.Enum.msoFileDialogFolderPicker) |
Enum |
|
宏 |
加载项 |
|
|
End(xlUp) |
End(-4162)或者End(3) |
向上 |
|
End(xlDown) |
End(-4121)或者End(4) |
向下 |
|
End(xlToLeft) |
End(-4159)或者End(1) |
向左 |
|
End(xlToRight) |
End(-4161)或者End(2) |
向右 |
|
宏 |
加载项 |
|
|
for(let rg of rngs) |
for (let i=1; i<=cellCount; i++) |
|
|
for (let sheet of workbook.Sheets) |
for (leti=1; i<=workbook.Sheets.Count; i++) |
大部分场景不会主动抛Error,而是返回undefined/null、静默失败,不会出发catch,比如像重命名的工作表已经存在。
现在的AI都比较智能(傻瓜?)像第三点AI基本都是无脑for,反倒不会出现这个错误,第一点如果习惯好,基本也不怎么需要改,AI也不会省略的,倒是涉及到Item的地方比较需要注意。
夜雨聆风