3.2 VBA里的数据类型

3.2.1 打酱油的故事

小A来到商店,“老板,打一斤酱油。”

老板:“……你拿菜篮子打酱油?”

离家不远,五分钟后。

“老板,打酱油。”

“拿个小小的花椒油瓶,你真有才。”

第三次,提着水桶……

……

img077

选不对容器,打不回酱油。菜篮子装不了酱油;花椒油瓶装不下一斤酱油;水桶很大,能装酱油,但杀鸡却派上了牛刀……

3.2.2 走进Excel的商店

Excel就是一间“商店”,商店里摆着各种各样的数据,作为Excel的用户,每天都在重复着打酱油的故事。

职工编号、职工姓名、身份证号、出生年月、联系电话等,都是在Excel里天天打的酱油,如图3-1所示。

img078

图3-1 Excel里的数据

酱油是液体,面条是固体,商店的老板知道应该把谁放在桶里,把谁放在纸箱里。

在Excel里,姓名、出生年月、基本工资这些不同的数据就像商店里不同的商品,为了便于区分,Excel把它们分为不同的类型。如文本、日期、数值等。

面对这些不同类型的数据,编写程序时,你得告诉Excel,应该选择哪种类型的容器来保存它们,如图3-2所示。

img079

图3-2 Excel里的数据

3.2.3 VBA中有哪些数据类型

数据类型就是对同一类数据的统称,如文本、日期、数值等。

VBA里的数据类型有:字节型(Byte),整数型(Integer),长整数型(Long),单精度浮点型(Single),双精度浮点型(Double),货币型(Currency),小数型(Decimal),字符串型(String),日期型(Date),布尔型(Boolean)等,如表3-1所示。

表3-1               VBA中的数据类型

数据类型存储空间(字节)范围描述
Byte1保存0~255的整数
Boolean2保存逻辑判断的结果:True或False
Integer2保存-2768~32767的整数
Long4保存-2147483648~2147483647的整数
Single4负值范围:-3.402823E38~-1.401298E-45正值范围:1.401298E-45~3.402823E38
Double8负值范围:-1.79769313486232E308~-4.94065645841247E-324正值范围:4.94065645841247E-324~1.79769313486232E308
Currency8数值范围:-922337203685477.5808~922337203685477.5807
Decimal14不含小数时:+/-79228162514264337593543950335包含小数时:+/-7.9228162514264337593543950335最小非零数字:+/-0.0000000000000000000000000001
Date8日期范围:100年1月1日~9999年12月31日时间范围:0:00:00~23:59:59
String(变长)10字节加字符串长度0到大约20亿个字符
String(定长)字符串长度1到大约65400个字符
Object4对象变量,用来引用对象
Variant(变体型)除了定长String数据及用户定义类型外,可以包含任何种类的数据。如果是数值,最大可达Double的范围;如果是字符,与变长String的范围一样
用户自定义每个元素的范围与它本身的数据类型的范围相同

不同的数据类型告诉Excel应该以什么形式来保存它。

面对不同类型的数据,在编程时,应先告诉程序按什么数据类型来保存或处理它,如图3-3所示。

img080

图3-3 不同的数据使用不同的数据类型