分享

VBA基础(二)

 L罗乐 2016-10-18

「VBA」学习系列第2


        这篇介绍VBA中最基础的一些概念,基础但非常重要:数据类型变量、常量和运算符。


1
   数据类型


        在任何编程语言,变量的数据类型都是最最基础的知识,VBA也不例外,事实上数据类型在大多数语言中是类似的。下面列个简单表,对于一些细节比如数据类型所占空间等,如若不是专业的编程人员,我们不需要掌握,只需了解VBA中有哪些数据类型,怎么用才能避免程序报错即可。


2
  变量      

        

        什么是变量?顾名思义,变量就是没有固定的值,且值可以随时改变的数。关于变量我们应该掌握三个方面的内容。第一,如何声明或者定义变量;第二,变量有哪些类型;第三,变量作用的范围和生命周期。

        第一和第二应结合在一起回答比较好。根据作用范围的不同,变量可以分为工程级变量、模块级变量和过程级变量;根据存活期的不同,变量可以分为本地变量和静态变量。变量的声明关键字是有dim(本地变量),static(静态变量),private(私有变量)以及public(公有变量)。简单地说,private声明的变量只在该声明区域内作用,而public声明的变量在该工程的所有地方以及其他工程能都能使用,且只要Excel程序没有关闭,公有变量的值将一直储存。

       值得仔细一说的是静态变量和本地变量的区别。用一句话说明白,即是静态变量的值不会随着过程的结束而消失,会一直保存至Excel关闭。下面用一具体列子说明。




运行第一次在立即窗口得到结果:

1

运行第二次则得到结果:

1

通过这个简单的例子,两者的区别已经很明显了:第一次运行后,静态变量i“记住”了该过程运行的结果“i=1”,在第二次运行时i的初始值就是它记住了的值“1”;而本地变量则没有这种记忆能力,第二次运行时j的初始值就是整型变量默认的初始值0。

   注意:公有变量(public)也具有和静态变量的记忆性,只是作用范围不同。另外静态变量的这种记忆能力具有很特殊的用途,在以后遇到时我会详细说明。


        或许在一些高手的程序里经常能看到这样的定义语句:

Dim i%,s$,j&

        这可能让很多初学VBA的人一头雾水,但实际上这只是一种简略写法而已,还原后的程序其实是这样的:

Dim i as Integer,s as String,j as Long

        虽然看起来节省了不少字符,但程序的可读性却降低了不少,所以建议初学者不要使用类型声明字符。但是内容还是得介绍的,也列个表吧。

   注意:虽然变量类型的声明并不是必须的,但养成声明变量类型的好处也是不言自明的:一是提高程序的可读性,也方便在程序报错时容易debug;二是提高程序的运行效率,如果不声明变量的类型,或者都笼统地将所有变量声明为可变型(dim x as variant,或者干脆dim x),那么VBA将会把所有变量都按22 n的字节大小读入内存,在数据量很大的情况会明显地拖慢程序。


3
  常量


        常量是值固定不变的数。常量的声明关键字是const,基本语法如下:

Const 常量名称 as 数据类型 = 具体值

当每一个值在程序中需要反复用到且该值相对复杂,那么常量的运用就会使程序更简洁明了。下面举几个常量的列子。如下图程序所示,我们就可以在程序中用“pi”来代表3.1415926这个数字了,这种使用常量的方法不仅可以美化程序,还可以增加程序到可读性。




        常量的作用范围在于const声明语句所放置的位置,如果放在过程中(sub 和function)则可称为过程常量,若放在模块顶端,则可在该模块内使用,但常量没有记忆能力。

        VBA还有一种常量,一般以vb,xl等开头。自定义VBA常量用Enum声明关键字,这是非常重要的内容,我将在介绍对象属性方法事件时重点介绍。

4
  运算符


        VBA的运算符和其他编程语言也是相通的。我将VBA运算符分为四大类:算术运算符、关系运算符、逻辑运算符以及其他运算符。列表如下:

        运算符的用法是比较简单的,在下一篇VBA语句以及后续内容的介绍中我会穿插介绍各类运算符的用法。


 敬请期待!下篇预告:VBA基础(三):语句




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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多