ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 753|回复: 4

[分享] JSA 踩坑记录

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-15 20:18 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
写了一百多行代码,突然出错了。反复检查、调试,才发现 JSA 有BUG。最终简化代码如下:
  1. function test(){
  2.         console.log(`计算结果: ${15/5}`);
  3. }
复制代码
共3行代码,实质上执行的代码仅第2行,就是它有问题!
①光标移动到第2行之行首,按F5运行,提示出错:【语法错误:函数外不能使用赋值表达式,变量初始化和函数调用。】
②光标移动到第2行之行尾,按F5运行,弹出宏选择对话框,提示选择1个宏,选定 test 后运行,提示同上出错信息框:【语法错误:函数外不能使用赋值表达式,变量初始化和函数调用。】
③把
        console.log(`计算结果: ${15/5}`);
改成等效运算的代码,或其它运算符号,但不能是除号/
        console.log(`计算结果: ${15*0.2}`);
代码运行正常。

结论:当模板字符串中的表达式含有 / 即除号运算符时,JSA 很可能会出错。

在 wps 没有修正 bug 之前,修正方法参考:可以有许多方法,通过尝试,用了最简单的办法,把出错的第2行代码,放入一对花括号对中,即可正常运行,如下:
        { console.log(`计算结果: ${15/5}`); }

这个坑很隐蔽,当它位于多重循环中时,JSA 提示出错的位置并不是这行代码,而是循环之外的第1个赋值语句,花了不少时间才找到这个坑,特记录之。








TA的精华主题

TA的得分主题

发表于 2024-5-16 09:05 | 显示全部楼层
这个坑在我这里不存在,我的WPS的版本是WPS2019企业版

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-16 18:57 | 显示全部楼层
LIUZHU 发表于 2024-5-16 09:05
这个坑在我这里不存在,我的WPS的版本是WPS2019企业版

我的是个人版,前不久在线更新到最新的12.1.0.12894

今天特意到另一台电脑,还没在线更新的wps 12.1.0.12388 上测试,果然问题不太一样,问题1不存在,问题2存在一半,即提前结束了test()函数,但选择了test后运行结果正确

TA的精华主题

TA的得分主题

发表于 2024-5-17 09:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
确实是这样的,我也经常遇到

TA的精华主题

TA的得分主题

发表于 2024-5-17 12:58 | 显示全部楼层
模版字符串里的内容最好不好表达式,直接用变量就可以了,表达式的话,报错的情况还是挺多的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 15:55 , Processed in 0.036767 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表