“VBA代码解决方案”这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高教程,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第2讲:VBA代码中七种类型数据的应用

数据,在人们日常工作中不可缺少,却很少有人能仔细的研究这其间的规律,因为太枯燥了,单单是一个分类就有很多,今日讲在VBA中数据的分类。

1 字符串类型

符号:String

字符串是用于保存文本数据的,字符串内容应放置于双引号内。字符长度4字节。

“您好”不可以 “您好” 可以

2 字节型

符号:Byte

字节型字符的长度是1个字节。

3 布尔型

符号Boolean

布尔型数据用于表示逻辑值:真、假 。其中“真”为True,“假”为False。布尔值数据常用于条件判断语句。布尔型字符长度是2个字节。

  • 应当注意的是,当其它数据类型转换为布尔值时,0会转成False,其它值则变成True。当把布尔值转换成其他数据类型时,False会转换为0,True则是-1。
  • 注意:和EXCEL的不同点:当把布尔值转换成其他数据类型时,False会转换为0,True则是-1。

VBA中用于表示数字的数据类型有4种:

整型 Integer,占用两个字节;长整型 Long,占用4个字节;单精度浮点型 Single,占用4个字节;双精度浮点型 Double,占用8个字节.

1) 整型及长整型用于表示整数,单精度与双精度浮点型都用于表示小数。

2) 整型与长整型的区别在于两者所能表示的数值范围不同:

3) 整型数据能表示的数据范围:-32768 ~ 32767

4) 长整型数据能表示的数据范围:-2147483648 ~ 2147483647

5) 单精度浮点数与双精度浮点数除了在数值范围不同之外,两者所能表示的数据精度(即小数点后多少位)也是不同的

6) 单精度浮点型能表示的数据范围:

在表示负数时: -3.402823E38 ~ -1.401298E-45

在表示正数时: 1.401298E-45 ~ 3.402823E38

7) 双精度浮点型能表示的数据范围:

在表示负数时: -1.79769313486231E308 ~ -4.94065645841247E-324

在表示正数时: 4.94065645841247E-324 ~ 1.79769313486231E308

8) 单精度浮点型其精度是6,即只能保存小数点后最多6位的数据;如果超出以上长度,则超出部分会被去掉,并且会自动四舍五入。

9)双精度浮点型其精度是14,即只能保存小数点后最多14位的数据。如果超出以上长度,则超出部分会被去掉,并且会自动四舍五入。

  • 上述各类型的数据在使用时要遵守的一个原则就是:够用就好。而不是越大越好。
5 日期型数据

符号Date

日期型数据不仅可以表示日期,还可以表示时间。可以表示的日期范围是:100年1月1日 ~ 9999年12月31日;可以表示的时间范围是:0:00:00 ~ 23.59.59。占用8个字节。

能被Excel识别到的日期,都可以赋值给日期型变量。

6 变体型数据

符号Variant 变体型数据是一种特殊的数据类型,几乎可以用于保存所有其它数据类型的数据。可以简单地理解为:当不知道变量所要表示的数据是什么类型时,就把它定义为Variant。

7 对象型数据

符号Object

对象型是VBA中另一种特殊的数据类型。有点类似于其它高级编程语言中的“对象”,它们都有自己的属性与方法.

上面讲了在VBA中用到的各种数据的类型,这些其实在我们的写代码中经常会用到,加以规范的总结是必要的,不要认为这些简单,数的理论往往看着简单,往往有很深奥的知识在里面。一切圣贤皆以无为法而有差别,最简单的道理是最大的。

实例:在写代码时,在命名变量时,最好使用规范的语句进行声明:如,想要给某数据分数表数据求和,把值放在SUM_NO1中,由于是分数,将会出现小数,而小数的位数不会很多,所以就要利用下面的语句声明:

DIM SUM_NO1 AS Single ’单精度浮点型 Single,占用4个字节

写到这里,肯定会有读者会问什么是字节?此知识点不在本平台的讲解范围内,只做简单的讲解,字节(Byte ):是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。也就是说八个二进制位构成1个"字节(Byte)",1个字节可以储存1个英文字母或者半个汉字,1个汉字占据2个字节的存储空间。

今日内容回向:

1 VBA 中可用的数据类型有哪些?

2 上面分数的表示中用Double代替Single 是否可以?说出自己的观点。

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解

第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程

第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)

第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解

第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解

第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用

第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解

第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用

上述教程的学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

相关文章