ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 烟雨乱江南

[求助] JS宏里,空值怎么处理

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-10-31 14:57 | 显示全部楼层
烟雨乱江南 发表于 2023-10-31 11:44
空值后面的单元格数据没有参与运算,求和单元格在一次参与运算后,多运行几次,不再有变动,但第2、3行根 ...

我没看懂你的需求,是不是像下面这样?
1.jpg




TA的精华主题

TA的得分主题

发表于 2023-10-31 17:20 来自手机 | 显示全部楼层
这很明显直接用数组迭代的方法处理就行了,直接操作Range对象写代码非常麻烦
判断单元格是否为空值:if (s != underfind)
如果是处理数字可以直接简写:if (s)
布尔值:0、-0、""(空值)、underfind、null、false、NaN为假,其他统统为真

TA的精华主题

TA的得分主题

发表于 2023-11-1 08:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请看图片:

微信截图_20231101084510.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-2 20:36 来自手机 | 显示全部楼层
ctp_119 发表于 2023-11-1 08:46
请看图片:

谢谢版主大人

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-2 20:41 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Again123456 发表于 2023-10-31 14:57
我没看懂你的需求,是不是像下面这样?

其实你第一次那个是对了的,当时我还还运行了下,之后被老板叫去干活了,一时忘了保存,回来一看你重新编辑了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-2 20:44 来自手机 | 显示全部楼层
Again123456 发表于 2023-10-31 14:57
我没看懂你的需求,是不是像下面这样?

本来当时想回来重新做一下练习,先好好琢磨一下当中一些我还没看明白的。没想到层主给重新编辑了

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-2 20:56 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-11-6 22:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

其实也不能说无法运算,程序不是也正常结束了吗?并不会报错,只不过没有得到你想要的结果。

问题出在
s = s + Range("a"+x)

如果Range("a"+x)的单元格为空时,Range("a"+x)的值为undefined,此时,你应该跳过
s = s + Range("a"+x)
顺便说一下,s = s + Range("a"+x),这个写法很成问题,概念上容易出错,应写成:
s = s + Range("a"+x).Value2
好了,下面我们这样来跳过Range("a"+x)的值为undefined,s 的累加:
if (!Range("a"+x).Value2) s = s + Range("a"+x).Value2;
注意,逻辑表达式中有个感叹号,表示“非”,if (!Range("a"+x).Value2)表示单元格的值非空
下面,用短路求值简化上面的判断代码:
Range("a"+x).Value2 || s += Range("a"+x).Value2;

最后,简要说一下逻辑判断,当表达式x出现在 if (x) 中时,x 的值会转换为逻辑值
当 x 为数值型,其值为 0、-0、underfind、null、NaN时,转换为假,其它值都转换为真。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-17 10:16 , Processed in 0.043938 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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