分享

Excel VBA 学习笔记4:VBA变量

 柴草 2016-09-18

Excel VBA 学习笔记4:VBA变量

所谓变量,就是可变的量。我们在前面已经接触到了,有了变量我们就可以在循环里实现数据或单元格的自动变换。变量其实就好象在内存中临时存放的小盒子,这种盒子有好几种,每种里存放相应的物体。

一、变量类型

在VBA中我们常用到的变量类型有数字型(Byte、Integer、Long、Single、Double)、文本型(String)、布尔型(Boolean)、日期型(Data)、对象、数组等,有的是很多编程语言里常用到的,有的则是Excle中为了简便操作而特殊定义的类型。具体变量类型的说明我们在VBA编辑器里按F1可以查看帮助文件,Visual Basic 语言参考下面有数据类型。

1、数值型

Excel VBA 学习笔记4:VBA变量我们用Excel主要就是来处理数据的,所以数值类型是必然有的。数值类型又有整数和小数之分,即整型和浮点型。上面的例子是定义了一个整数类型的X,如果需要定义浮点型的则用关键字Float。

2、文本型

Excel VBA 学习笔记4:VBA变量我们录入单元格里的内容除了数字还有字母和汉字,这些都是文本类型的字符,用关键字String。这里值得注意的地方是,VBA中汉字的长度是按照1个字符计算的,这个其它大多数语言是不一样的,即用方法len得到的汉字长度就是汉字的个数,用lenb才会按照2个字符计算汉字。

3、对象

Excel VBA 学习笔记4:VBA变量这是VBA与众不同的地方,它会涉及到很多对单元格的操作,比如改变格式,所以专门设计了单元格类型的变量。所以变量的初始值都可以用set方法设置。

4、数组

Excel VBA 学习笔记4:VBA变量数组是很多编程语言都具备的变量类型。有了数组你就可以一次定义很多变量,也可以非常有效的存储数据。VBA里的定义方式比较特殊些,不要忘了括号里是(a To b),而不是(a, b)。

以上是简单介绍了几种常用的数据类型,学会了查帮助文件就会学到很多知识。需要注意的是每种数据类型都是有范围的,它们在内存中占用的大小是不一样的,所以它们能存放的东西也是有大小限制的。下面的表格列举了各种类型占用内存的大小和能够存放数据的范围。在使用的时候一定要注意选取合适的,一来不要出现整型数据里存放浮点数的错误,二来不要大材小用浪费内存。



Excel VBA 学习笔记4:VBA变量


Excel VBA 学习笔记4:VBA变量

二、变量的声明

有人会问,我可不可以不声明变量,让计算机自动去处理呢?答案是可以,但是这样会造成内存的浪费。当然,有的时候我们确确实实不知道该声明成什么变量。

但是,如果你选择了要求变量声明,你必须进行声明,否则会编译错误。(工具--选项--编辑器标签下面有这个选项,如果勾选了,在编辑器的顶端会有Option Explicit。)

声明变量的方式常用的有几种,每种都可以一次声明多个变量,多个变量名称见用逗号隔开:

Dim 变量名称 As 变量类型,最常用的变量声明方式,可用在过程和模块中。

Public 变量名称 As 变量类型,声明为公共变量。

Private 变量名称 As 变量类型,声明为私有变量。

Static 变量名称 As 变量类型,声明静态变量,在整个代码运行期间它的值不会变化。

如果我们一时不知道该声明成什么变量类型,只声明变量名称而不指定变量类型,则默认为Variant类型(变体型),它会根据需要存储的数据类型改变自己的类型与之匹配。还是那句话,尽量少用,因为会造成内存的浪费。

三、变量的存活周期

变量分为过程级变量、模块级变量和全局变量,不同的变量有不同的使用范围和在内存中存活周期。

1、过程级变量:每一个Sub就是一个过程,在其中声明的变量均为过程级变量,可用Dim或Static声明。过程结束,变量值释放。

2、模块级变量:一个模块中可以有多个过程,在所有过程之外声明的变量就是这个模块共享的变量,可用Dim或Private声明。变量的值只在本模块中保持,工作簿关闭时释放。

3、全局级变量:用Public声明的变量就是全局变量,在任何一个模块中的任何位置都可以声明。 在所有的模块中都可以调用,值会保存到Excel关闭时才会被释放。

相关笔记请参阅:

Excel VBA 学习笔记3:循环语句

Excel VBA 学习笔记2:条件语句

Excel VBA 学习笔记1:语句、对象、方法、属性

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多