分享

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

 L罗乐 2016-09-16

我们知道了什么是变量。也就可以理解知道了拿酱油瓶,里面有酱油。那么问题来了,你拿谁家的酱油瓶呢?是自己家的,还是隔壁老王家的?这就涉及到了变量的作用域。
变量的声明很简单,就是告诉计算机,这个变量是存放什么类型的数据,也可以理解为这个空瓶子里面装酱油还是白醋。我们详细的来聊一聊作用域。
作用域,可以理解为变量可以使用的范围吧,就是在哪里可以使用这个变量。比如我在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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

这里就可以看出,f1这个过程中的a变量,只有在f1中可以使用。然后f1中也可以使用a1,和a3的变量,这样你运行一下f1就可以发现a1这个单元格已经被更改了。
我们在f1中还使用了Let a1 = “hello(@ο@) 哇~”这是给变量赋值的语句,就是说这个a1的容器放什么东西,当然let可以省略,写着原因的是为了跟下文的给对象赋值使用Set作为区分。
总结,我们上述操作是在模块1中进行的,为了证明Public的变量可以在所有模块中进行使用,那么我们创建模块2.
执行a1后的结果为这里写图片描述
step 1:如图在模块上右键,选择“插入”,然后新建模块。
创建模块2
step 2:在新建的模块中定义一个方法叫module,然后使用a3这个变量。
模块2中的方法
step 3:执行一下module这个方法可以看到a2被我们更改了
运行结果
我们现在就可以简单的掌握了作用域。也就是说知道这个容器都在哪里生效了。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多