VBA,Visual Basic for Applications,Excel软件中开启开发者模式,使用VB开发Excel处理程序,提高办公效率。
最近学习《全民一起VBA》网课,很有启发性,基础篇快速上手,提高篇从底层编程逻辑细节讲起,特对讲到的VBA数据类型一点知识做个记录。
例子:
Dim a
a=30000*2
会报错,因为结果超出了Integer类型的最大取值,需要修改。
Dim a as Long
a=30000 * 2
仍然会报错,课程里讲了公式运算的基本原理,具体为:
‘第一步:申请临时空间(!!!),用于存放中间结果
‘临时空间分配原则,选择参与运算的数字/变量中最大的数据类型
‘除法操作例外,均采用Double类型空间
‘第二步:计算右边算式结果,保存到临时空间
‘第三步:临时空间的内容,复制到左边变量
因而,发现无论变量a如何定义,右边计算都会报错,需要在了解原理的基础上修改。
Dim a
a=30000& * 2
通过&首先就提醒了30000在内存中需要采用的存储类型,结果就不会有问题了。
1. VBA中的数据类型有Integer、Double等,其中:
Integer整形,2个字节,涵盖数字范围为-32767到+32767;
Double为双精度,8个字节,涵盖数字范围就比较大了。
2. 数字运算符有+,-,*,/,\,其中:
/表示除法,\表示取整
该专题的拓展练习:
Dim i%, k&
(1)
i=32766+5\3
k=32765+i
第一行右边都是整形数据,符合变量i,但是第二行右侧结果会溢出
(2)
i=32766+5/3
k=32765+i
第一行右边结果大于整形Integer最大取值范围,会溢出
(3)
i=8/3
k=32765+i
第一行会取整为3,第二行结果溢出