|
楼主 |
发表于 2009-8-12 21:31
|
显示全部楼层
在上面,我们简单介绍了VBA的开发环境、几个常用的窗口,并对对象、对象的属性、对象的方法、对象的事件等概念作了简单的介绍,贴子大家认真看了吗?有没有一点点的收获?学习成绩如何?
什么是对象?什么是集合?什么是属性?什么是方法?什么是事件?如何正确地表示它们?
这些,你都能回答了吗?
先沉思三秒钟,如果你不能回答,那请赶快回过头去,再看一遍,我们说VBA是采用面向对象的程序设计方式,这些都是很重要的概念,如果不弄清楚,实际应用时,你可能会感到手忙脚乱。
如果已经掌握了,那让我们一起继续本贴的内容。
这次,我们将继续单调的基本功练习,讲一些VBA里面的关键字,为程序设计打下基础,还是那句话,希望你不要嫌内容的单调,一口你永远也吞不下一个大胖子,学习是一个循序渐进的过程。
------------------
数据类型、变量、常量、数组
====================
VBA的主要目的是什么?不用说了你也知道,当然是处理数据。某些数据存在于对象中,如工作表的单元格区域里,某些数据存在于我们自定义的变量中。
--------------------------------------------------------------------------------------
1、数据类型
数据类型告诉计算机如何将数据存储在内存中,如以整数、字符串、日期等。
数据类型是变量的特性,数据类型包括:
数据类型
| 存储空间大小 | 范围 | Byte | 1 个字节 | 0 到 255 | Boolean | 2 个字节 | True 或 False | Integer
| 2 个字节 | -32,768 到 32,767 | Long(长整型) | 4 个字节 | -2,147,483,648 到 2,147,483,647 | Single (单精度浮点型) | 4 个字节 | 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38 | Double (双精度浮点型) | 8 个字节 | 负数时从 -1.79769313486232E308 到
| -4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308 | Currency
| 8 个字节 | 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 | (变比整型) | Decimal | 14 个字节 | 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001 | Date | 8 个字节 | 100 年 1 月 1 日 到 9999 年 12 月 31 日 | Object | 4 个字节 | 任何 Object 引用 | String
| 10 字节加字符串长度 | 0 到大约 20 亿 | (变长) | String(定长) | 字符串长度 | 1 到大约 65,400 | Variant(数字) | 16 个字节 | 任何数字值,最大可达 Double 的范围 | Variant(字符) | 22 个字节加字符串长度 | 与变长 String 有相同的范围 | 用户自定义
| 所有元素所需数目 | 每个元素的范围与它本身的数据类型的范围相同。 | (利用 Type) |
--------------------------------------------------------------------------------------
2、变量
变量是用于保存在程序运行过程中需要临时保存的值或对象。就相当于我们在操作工作表的时候插入的辅助单元格、辅助列或辅助表一样。
同工作表的单元格一样,变量可以接纳很多种的数据类型,如其名,程序运行后,变量的值是可以改变的。
如何定义变量?
定义变量可以使用Dim语句:
Dim 变量名 As 数据类型
变量名有一定的命名规则,这里我就不详细说明了,需要提醒的是在程序的设计过程中,你可能会定义很多的变量,为了阅读及修改程序的方便,你定义的变量名尽量能让人一看就明白这个变量具体代表的是什么。在Dim语句中,我们可以不必声明变量的数据类型,直接输入“Dim 变量名”此时定义的变量将被指定为Variant类型。
但我们在程序设计的过程中,一般应该明确数据的类型,这是一个好的编程习惯,因为指定数据类型后会提高程序的运行速度。
我们可以在模块中输入“Option Explict”作为第一句语句来强制声明所有变量。也可以点“工具——选项”,在选项对话框里勾选“要求声明变量”。这样,VBA在遇到没有声明的变量名称,该语句将导致程序停止。
定义变量除了可以使用Dim语句外,比较常的还有:static语句,Private语句,Public语句。使用不同的语句定义的变量不同的是它们的作用作用域不同,具体为:
(1)如果在一个过程中包含了一个Dim或Static语句,此时声明的变量作用域为此过程,即本地变量。
(2)如果在一个模块的第一个过程之前包含了Dim或Prvate语句,此时声明的变量作用域为此模块里所有的过程,也就是在此模块里所有的过程都可以使用它,即模块作用域下的变量;
(3)如果在一个模块的第一个过程之前包含了Public语名,此时声明的变量作用域为所有模块,即公有变量。
变量的作用域是指变量保留其值的这段时间,也称为变量的生成周期,它决定变量可以用于哪个模块或过程中。
给变量赋值
用等号(=)是VBA里的赋值运算符。
比如我们把"我在学习VBA变量!"这个字符串赋给变量A,则直接输入:
A="我在学习VBA变量!"
对了,你可以在立即窗口里试一下逐条输入:
A="我在学习VBA变量!"
Mgbox A
看一下效果。
注意,在VBA里文本是要用英语引号引起来的,还有日期要用#号,比如将日期2009-3-10赋给变量A,则为:
A=#2009-3-10#
--------------------------------------------------------------------------------------
3、常量
执行过程时,变量的值会发生改变,所以我们称它为“变量”,但有时候我们需要引用不会发生变化的数据,这就是常量。常量声明后,不以对它进行再赋值。
声明常量设定常量的值,需要用Const语句:
Const 常量名 As 数据类型 = 常量的值
--------------------------------------------------------------------------------------
4、数组
除了变量和常量以外,数组也是我们常用到的。
什么是数组?
数组是具有相同数据类型并且共享一个名字的一组变量的集合。数组也是变量。
数组中的元素通过索引数字加以区分。
如何声明数组?
可以用Dim语句或者Public语句声明数组。
Dim/Public 数组名 (a to b) as 数据类型
a 和b 是数组中元素的个数,数组元素素最小值为a,最大值为b,元素个数为(b-a+1)个,当然,你也可以直接输入个数,此时默认最小索引号为0。
如: Dim myarr(5) As Integer
这个数组的最小元素索引号为0,元素个数为6。
上面定义的只是一维数组,你还可以定义二维、三维、四维…….
如: Dim myarr(1 to 5,1 to 10) As Integer
这就是一个二维数组,元素个数为5*10=50个。
在程序设计的过程中,定义数组的时候我们可能不能确定数组的元素个数,对数组进行声明后,可以在运行时用ReDim语句重新指定数组的大小。
--------------------------------------------------------------------------------------
今天的这一部分内容实在很枯燥,连叶枫都有点耐不住了,拉拉杂杂说了这么多,也不知道你看出点门道没?同前一贴讲的内容一样,这些基础都是非常重要的,多读几遍,扎好马才能修练更高深的武功,千万别嫌这个过程的漫长。
一个让你心仪的女孩子,想牵上她的小手,徜徉在公园里的林荫小道上,先前的送花、打电话等等那一串串巴结的行动你会不会嫌太漫长?
VBA不像函数那样直面我们,它躲在Excel的背后,像一个“养在深闺未得见”的美丽姑娘,她飘在墙角的那缕模糊却美丽的身影对我们充满了诱惑,现在我们正在想法设法寻找她的联系电话,要想成功俘虏她,这一步能少吗?
看的没有动的快,动手操作才是学习的正确方法。发现问题,解决问题,这岂不是一个快乐的过程。
[ 本帖最后由 ggsmart 于 2009-8-13 16:37 编辑 ] |
评分
-
37
查看全部评分
-
|