vba 变量的作用域分类

变量的作用域,决定可以在哪儿个模块或过程中使用该变量。

按作用域分类,vba中的变量可分为本地变量、模块级变量和公共变量,不同作用域的变量详情如下:

单个过程: 

               在一个过程中使用Dim 或 Static语句声明的变量,作用域为本过程,即只有声明变量的语句所在的过程可以使用它。这样的变量称为  本地变量

如果在一个过程中使用Dim或Static语句声明变量,声明的变量即为本地变量。

例:

Sub Test_01()
    Dim  a  as String
    a="我是一个变量"
End Sub


Sub Test_02()
    MsgBox  a
End  Sub                      #由于变量a是在第1个程序中定义的,属于本地变量,VBA不允许我们在其他程序中使用这个变量  会显示 变量未定义 编译错误。

 

 

单个模块:(注:1.Dim 和 Private 同时使用 或 只用一个时用Private   2.模块级的变量,各个过程之间的变量值不互相传递,各个过程间该值重新为空值)

              在模块的第1个过程之前使用Dim 或 Private 语句声明的变量,作用域为声明变量的语句所在模块的所有过程,即该模块中所有的过程都可以使用它。这样的变量称为 模块级变量

如果想让同一模块中的所有过程都能使用定义的变量,可以在模块的第1个过程之前使用Dim或Private语句定义变量,这样该模块中所有的过程都可以使用定义的变量。

Option Explicit

Dim a as String
Private b as String

Sub 合并文本()
      a="我在ExcelHome论坛"
      b="学习Excel"
      MsgBox  a & b
End Sub

 

 

所有模块:

             在一个模块的第1个过程之前使用Public 语句声明的变量,作用域为所有模块,即所有模块中的过程都可以使用它。这样的变量称为 公共变量

如果想让不同模块中的过程都能使用声明的变量,应将变量定义为公共变量。

如果要将变量声明为公有变量,应在模块的第1个过程之前用Public语句声明它。

例:

Option Explicit
Public c as String

Sub 公有变量() c="我是一个公有变量" End Sub

posted on 2019-12-26 17:49  若阳y  阅读(54)  评论(0)    收藏  举报

导航