美文网首页
不同作用域的变量

不同作用域的变量

作者: 蝉时雨丶 | 来源:发表于2020-05-15 11:21 被阅读0次

不同作用域的变量

作用域 描述

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

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

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

1.定义本地变量:
如果在一个过程中使用Dim或Static语句声明变量,声明的变量即为本地变量,如:
Sub 本地变量()
Dim a As String '定义一个String类型的变量,名称为a
Static b As Integer '定义一个Integer类型的变量,名称为b
End Sub
如果一个变量被声明为本地变量,那该变量的作用域为本过程,只有定义变量的语句所在的过程才可以使用它。

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

Dim a As String       '定义一个String类型的变量,变量名为a
Private b As String   '定义一个String类型的变量,变量名为b

Sub 合并文本()
a="我在ExcelHome论坛" '给变量a赋值
b="学习Excel" '给变量b赋值
MsgBox a & b '用对话框显示变量a和变量b合并后得到的文本
End Sub

注:虽然在过程中没有定义变量a和b,但过程依然正常执行,这是因为变量a和变量b被定义为模块级变量。

3.定义公共变量
声明为模块级的变量只能被同一个模块中的过程使用,如果想让不同模块中的过程都能使用声明的变量,应将该变量定义为公共变量。
如果要将变量声明为公有变量,应在模块的第1个过程之前使用Public语句声明它。

Option Explicit
Public c As String
Sub 公有变量()
c="我是一个公有变量" '给变量c赋值
End Sub

注:如果一个变量被定义为公共变量,拿在任意模块的任意过程中都可以使用它。公共变量必须在模块中声明,在工作表、窗体等其他对象中、即使使用了Public关键字声明变量,该变量也只能被声明为
模块级变量。

4.静态变量
静态变量的情况比较特殊。这些变量在过程层次上进行变量的声明,当过程正常结束时,静态
变量保持它们的值不变。然而,如果有一条End语句中止了该过程,静态变量将丢失它的值。
注意,End语句与End Sub语句并不相同。
使用关键字Static可以声明静态变量:
Sub MySub()
Static Counter as Long
'- [Code goes here] -
End Sub

相关文章

  • 变量

    变量起作用的范围称为变量的作用域,一个变量在函数外部定义和在函数内部定义,其作用域是不同的。不同作用域内变量名可以...

  • 2022-03-27

    什么是作用域 作用域规定了当前执行代码对变量的访问权限 作用域最大的作用就是变量隔离,不同作用域下的同名变量不会有...

  • 作用域

    什么是作用域 作用域规定了当前执行代码对变量的访问权限 作用域最大的作用就是变量隔离,不同作用域下的同名变量不会有...

  • PHP

    PHP 变量作用域 变量的作用域是脚本中变量可被引用/使用的部分。 PHP 有四种不同的变量作用域: localg...

  • 16-修饰符和预处理指令-指趣学院

    全局变量和局部变量 变量作用域基本概念变量作用域:变量的可用范围按照作用域的不同,变量可以分为:局部变量和全局变量...

  • JavaScript作用域和预解析

    作用域 JavaScript中也有作用域的概念 相同作用域内不能有同名的变量和函数, 不同作用域内可以有同名的变量...

  • 不同作用域的变量

    不同作用域的变量 作用域 描述 单个过程 在一个过程中使用Dim或Static语句声明的变量,作用域...

  • Java_basic_1:成员变量和局部变量

    成员变量和局部变量 1.作用域不同 局部变量作用域仅限于定义它的method中 成员变量的作用域存在于整个Clas...

  • Java 知识点

    成员变量和局部变量的区别 作用域不同局部变量的作用域仅限于定义它的方法。成员变量的作用域在整个类内部都是可见的。 ...

  • 成员变量与局部变量

    成员变量与局部变量 1. 作用域不同 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类内部都是可见的 ...

网友评论

      本文标题:不同作用域的变量

      本文链接:https://www.haomeiwen.com/subject/wgzqohtx.html