双面特工攻略(Excel VBA入门之双面间谍)

双面特工攻略(Excel VBA入门之双面间谍)

admin 2025-10-18 热文 1 次浏览 0个评论

幸运飞艇开奖网 如果说Variant是VBA变量类型中黑白通吃的扛把子,那Boolean绝对是VBA变量类型中的一朵奇葩:它被定义为“逻辑变量”,初衷只是用来存储一个经判定的结论值,但本质却是数值类型,表示时又以字符串形式展现……说是双面间谍绝不为过!

我们可以在VBE(Excel后台代码编辑器)中先定义一个Boolean类型的变量spy,看看它的默认值及赋值情况(输出在B列):

Excel VBA入门之双面间谍

结论很清晰:Boolean型变量默认值为”FALSE”,可被赋予各种表达式(等号后的表达式我特意用括弧围起来表示一个整体),表达式的结果要么是TRUE(“真”)要么是FALSE(“假”),这刚好是Boolean类型变量只想展现给大家的两个值!(注:VBA不区分大小写,故“TRUE”、”True”、”true”完全是同一个量,”FALSE”同理)

Excel VBA入门之双面间谍

现在我们来看看这个spy的本质:

Excel VBA入门之双面间谍

将一个数值999赋给它,并用Msgbox弹窗函数测试,结果没问题!只是输出时并不是999而已(这不重要,我们目前只想验证它可以接受数值),你完全可以试试其他数值:负数、零、小数等等,结果一样:Boolean确实可以接收数值!

那Boolean类型已知的两个结果量“True”或“False”能以数值的方式输出吗?如果可以,说明其值是可以被“看作”数值,既然是数值就可以进行数学运算!我们先加1然后减1就会扒出这个被“看作”的数值!

Excel VBA入门之双面间谍

真的实现了!spy不但可以接收数值,还可与数值量做运算,而且其两个结果值“True”和“False”所对应的数值默认值分别为-1和0!

不管是对其输入还是让其输出都可以呈现出数值的特性,甚至可以直接与数值运算,这样的量不是数值是什么?

再来一个有趣的实验:将字符串变量直接赋给这个spy!(注:半角英文状态的双引号中包裹的内容会被VBA视为字符串)

Excel VBA入门之双面间谍

果然,字符或字符串类型是这个间谍渗透不了的。程序崩溃了,Boolean型不能接收String(字符串)类型!果真如此吗?那再试试“True”或“False”?

Excel VBA入门之双面间谍

这一次,spy被正常输出了!看来Boolean真的够奇葩:可以接收String(字符串)型变量,但仅限于“True”和“False”!真是选择性失忆啊……

绕得太多了,也许大家已经看迷糊了,总结一下吧:这个道貌岸然的Boolean型,对外的身份只有逻辑结果“True”和“False”,但真实身份却分别代表数值-1和0,且可以接收“True”和“False”这两个字符串变量!

如果你真的看懂了这些,你会对VBA的Boolean类型有全新的认识,很多奇形怪状的表达式都会被你一眼看穿,你在程式中的逻辑表达式也会呈现得更大胆、更灵活、而且更准确!这,才是我带你认识这个“间谍”的真正目的! 幸运飞艇官方开奖

附:VBA 数值型(Byte、integer、single等)与Boolean之间的联系:非零为真,零为假!

转载请注明来自Nkqfj,本文标题:《双面特工攻略(Excel VBA入门之双面间谍)》

每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,1人围观)参与讨论

还没有评论,来说两句吧...