VBA教程初级(三):变量的声明与作用域

发布时间:2018-10-07 04:05:12   来源:文档文库   
字号:

VBA教程初级(三):变量的声明与作用域

我们知道了什么是变量。也就可以理解知道了拿酱油瓶,里面有酱油。那么问题来了,你拿谁家的酱油瓶呢?是自己家的,还是隔壁老王家的?这就涉及到了变量的作用域。

变量的声明很简单,就是告诉计算机,这个变量是存放什么类型的数据,也可以理解为这个空瓶子里面装酱油还是白醋。我们详细的来聊一聊作用域。

作用域,可以理解为变量可以使用的范围吧,就是在哪里可以使用这个变量。比如我在a的excel中使用了变量age,但是我在b的excel中直接使用age是不可以的,这就涉及到了作用域的概念。

作用域包括:

单个过程,在一个过程也可以理解是一个函数中使用Dim或者Static语句声明的变量,这里static是静态的意思,就是说这个变量一旦声明了就不可变,比如身份证,一个人对应一个身份证不可以变。

单个模块,在模块的第一个过程之前使用Dim或者Private语句声明的变量,可以在这个模块内所有的过程中使用。

所有模块,在一个模块的第一个过程之前使用Public语句声明的变量,作用域为所有模块,这样所有的模块都可以引用(使用它)。

Option Explicit

Public a3 As String '所有模块可以使用的变量

Dim a1 As String '模块内可以使用的变量

Public Sub myFirstVBA()

' 第一个vba程序

MsgBox 'hello vba'

End Sub

Public Sub f1()

Dim a As String '过程内的变量'

a = '啊哈哈'

Let a1 = 'hello(*@ο@*) 哇~'

Range('A1').Value = a1

End Sub

123456789101112131415161718

这里就可以看出,f1这个过程中的a变量,只有在f1中可以使用。然后f1中也可以使用a1,和a3的变量,这样你运行一下f1就可以发现a1这个单元格已经被更改了。

我们在f1中还使用了Let a1 = “hello(@ο@) 哇~”这是给变量赋值的语句,就是说这个a1的容器放什么东西,当然let可以省略,写着原因的是为了跟下文的给对象赋值使用Set作为区分。

总结,我们上述操作是在模块1中进行的,为了证明Public的变量可以在所有模块中进行使用,那么我们创建模块2.

执行a1后的结果为

step 1:如图在模块上右键,选择“插入”,然后新建模块。

step 2:在新建的模块中定义一个方法叫module,然后使用a3这个变量。

step 3:执行一下module这个方法可以看到a2被我们更改了

我们现在就可以简单的掌握了作用域。也就是说知道这个容器都在哪里生效了。

本文来源:https://www.2haoxitong.net/k/doc/76c81d6630126edb6f1aff00bed5b9f3f80f7245.html

《VBA教程初级(三):变量的声明与作用域.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式