|
楼主 |
发表于 2009-1-27 22:02
|
显示全部楼层
【2009.1.27】代码起步——关键字(续)
小别数日,今日终于回来了。先给大伙道一声“新年好”!
早晨一早驱车三个多小时,赶到了孩子他外婆家。到达的时候已然到了中午,自然免不了应酬一番。喝了点小酒,一下午头都昏昏的。到此时日落西山,方突然想起年前许下的今日之约,立即开机上网、奋起疾书,至此,才有了下面的文字,望诸位海涵!
还记得年前我们说完了声明类关键字,今天我们要讲的是数据类型关键字,列举如下。
【数据类型关键字】
Byte:字节类型;
Integer:整型数值类型;
Long:长整型数值类型;
String:字符串类型;
Boolean:逻辑类型;
Single:单精度类型;
Double:双精度类型;
Currency:货币数值类型;
Decimal:可以容纳小数的数值类型;
Variant:任何数字值或字符串值;
Object:对象类型;
用户自定义:利用TYPE语句由用户自己定义的数据类型。
首先,我们先谈谈VBA中大伙见到的文字有哪些。大家在VBA中能够见到的文字,除了之前列举的几大类关键字(保留字)外,就是些数据和注释了。注释是以西文半角方式的单引号开头的文字,在VBA编辑器里显示为绿色。这些字主要用来注释解说变量或代码的用途。数据则有很多种,这才是我们今天要讲的主要内容。在VBA中,数据按照形态大致分为三类,常量、变量和数组。常量就是指在程序中已经指定的值,并且常量的值在程序中保持不变。举个例子,我们声明一个常量名字叫“Name”,我们在可以在声明的时候直接赋予这个常量一个值比如“张三”。那么在这个程序里,我们就不用直接引用“张三”这个名字了,我们在需要引用的时候只要用Name这个常量就可以替代了。可能有的朋友会说,既然Name就是代表“张三”,那我们为什么不直接在程序里写“张三”呢?这里有这么几个原因。一是有可能直接使用“张三”不方便,如果起个有意义的名字更便于阅读和维护代码。二是如果以后需要修改程序,需要将程序中使用到“张三”的地方都改成“李四”,那么如果用引用一个常量的这种方式的话,就只需要修改Name这个常量的值就可以了。变量和常量有点类似,都是以一个名字来命名并赋予一个值给它,不同之处在于,常量的值在整个应用程序代码中是不变的,而变量的值会随着代码位置的不同而发生变化。在这里提供一个小建议,在给变量起名字的时候最好起一些有意义的名字,否则在今后维护代码的时候会遇到困难。比如可以给整型变量加上INT的前缀,如果这个变量用来保存“编号”的,那么可以起这样的名字“INT_name”,如果是保存“生日”的日期型变量呢?可以这样起“DATE_birthday”,等等。再来说说数组,数组也是变量,不同之处是数组是一组变量的集合而不是单个变量。因此,数组一般由变量名和下标组成,例如:NAME(2)、k(5)等。数组按照下标的个数分为一维数组(只有一个下标)、二维数组(有两个下标)和多维数组(有多于2个下标)。除了普通变量能采用数组形式外,对象、控件、单元格等都可以采用数组的形式来表示。对于有规律的变量或对象采用数组的形式可以方便的配合循环语句来简化代码、提高执行效率,不过会占用更多的内存资源,因此是一种空间换时间的方法。
其次,在学习具体变量之前,我们还要谈谈计算机是如何保存和处理各类数据的。按照数据的种类和载体我们大致可以分为这么几类,数字、西文字符、中文字符、图形、动画、视频、音频等。这些数据在计算机中都被翻译为2进制来保存。比如数字,分为整形、浮点型、单精度、双精度、长整形等,按照2的N次幂的方法计算所能保存的最大数和最小数来确定范围;再比如数字型字符和西文字符,都是按照ASCII编码来保存的,一个字符占用一个字节(8位二进制);中文字符由于数量众多,就采用国际标准交换代码来保存,一个字符占用二个字节(16位二进制);图形、动画、视频和音频数据就更为复杂,一般通过引用(在变量中保存能找到这些数据的地址)的方法保存。
最后,我们来看看学习变量需要重点掌握哪些内容。一是要十分清楚每种变量类型所对应的取值范围。根据我们第二点讲解的计算机保存各类数据的方法,对应不同类别变量的取值范围是存在不同的。BYTE字节型变量,只能存放1个字节的内容,因此你不能将一个汉字字符保存到一个字节型变量中,也为一个汉字字符需要占用2个字节的空间,如果用BYTE型变量保存就会发生溢出错误。具体上述关键字所对应的每种变量的取值范围详见联机帮助。二是变量的本质是一块特定内存区域的名称,我们通过引用这个名称(即变量名)来使用这块系统分配给应用程序的特定内存存放数据。明白了这一点可以帮助我们更好地在程序中使用变量。三是变量的生存周期和作用范围。这点就是我们上一讲所重点讲述的内容。
今天太晚了,先简单谈几点吧,有关内容将在今后用到的时候详细表述。 |
|