如何在VBA中实现工作表函数SIGN
创始人
2024-03-13 21:17:08
0

Excel中有一个公式sign,其返判断数字的符号,正数返回值为1,负数返回值为-1,0返回值为0。

但是在VBA中即无法使用Application.WorksheetFunction调用工作表函数,也没有提供相应的VBA函数实现此功能,也许MS的产品经理认为根本不需要这个功能,呵呵。

前一阵子在论坛看板有个帖子就是关于这个的提问,其实实现起来也很简单,单行IIF嵌套就可以实现,代码如下。

Sub demo1()n = 0Debug.Print IIf(n < 0, -1, IIf(n = 0, 0, 1))n = 100Debug.Print IIf(n < 0, -1, IIf(n = 0, 0, 1))n = -100Debug.Print IIf(n < 0, -1, IIf(n = 0, 0, 1))
End Sub

运行实例代码,结果如下。

0
1
-1

IIF用法很简单,这里就不再赘述。

这里给大家提供一个另类的实现思路,利用逻辑值TrueFalse的整数值,也可以快速实现符号判断,代码如下。

Sub demo2()n = 0Debug.Print Int(n < 0) - Int(n > 0)n = 100Debug.Print Int(n < 0) - Int(n > 0)n = -100Debug.Print Int(n < 0) - Int(n > 0)
End Sub

需要大家注意的是TrueFalse的整数值为-10,通过组合两个判断条件,然后将逻辑值进行运算,得到相应的结果。

相关内容

热门资讯

喜马拉雅怎么配音赚钱 ,喜马拉...   喜马拉雅是一个大家可以在上面听到一些日常我们可能是用眼睛看的书,在上面我们可以用听的,也可以听一...
银行股再度刷屏 基金增配逻辑持...   在红利主题基金密集申报、入市的背景下,低配叠加基金季度换仓让银行股再度刷屏,银行股正成为公募选股...
大学录取通知书查收攻略来了 转自:成都日报锦观大学录取通知书查收攻略来了 四川省2025年普通高校招生录取工作正在有序进行...
投诉保险公司打哪个电话?保险公...   现在保险公司越来越多,人们的保险意识也是非常强的,现在社会保险是非常复杂的,尽管意识再强也难免会...
【锲而不舍落实中央八项规定精神... 深入贯彻中央八项规定精神学习教育开展以来,天津、福建、湖北等地密切联系实际,一体推进深学、细查、真改...
二手车是先过户还是先退保险? ...   现在买二手车的人越来越多了,买二手车就会遇到问题,买二手车不比新车,二手车要过户还有退保险,新车...
最低还款好还是分期好?想要划算...   如今,很多人在网上贷款,或是使用信用卡消费后,不可避免遇到最低还款和分期还款怎么选择,相信是很多...
说说我的问题吧,我是个厨师,3... 说说我的问题吧,我是个厨师,30岁。谈了女朋友双方家长也都见过面奔着结婚去的?这不很简单吗?叫你女朋...
粤高速相关公司新增一项563.... (转自:快查一企业中标了)快查APP显示,粤高速相关公司广佛高速公路有限公司于2025年7月14日发...
2022年小车保险怎么买最划算... 买车也算是人生大事中的一项了,因为有了车就可以不用再挤地铁挤公交。那么买了车以后首先要考虑的事情必然...