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

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,通过组合两个判断条件,然后将逻辑值进行运算,得到相应的结果。

相关内容

热门资讯

永平监督助力核桃变成“致富果” 午后,永平县某农副产品公司的核桃加工车间内机器轰鸣,经过分拣、清洗、烘干、包装的核桃产品正被整齐装车...
长盛中证A100指数年报解读:... 净利润同比增46% 净资产突破2.7亿元长盛中证A100指数证券投资基金(以下简称“长盛中证A100...
伊朗外长:以总理在用美国人的钱... 当地时间3月27日,伊朗外长阿拉格齐在社交媒体发文称,以色列总理内塔尼亚胡“拿美国纳税人的钱和美国人...
以军空袭伊朗阿拉克重水反应堆 以色列军方当地时间3月27日称,已对伊朗的阿拉克重水反应堆实施空袭,称其打击目标为“用于生产核武器级...
重点项目高效推进 (来源:辽宁日报)转自:辽宁日报 日前,抚顺石化公司80万吨/年乙烯装置脱瓶颈改造及能效提升项目正按...