ad

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_2.6.1 如何设置公有变量和私有变量

网友投稿 152 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》一书中第2章,第6节,韩小良著。

2.6.1 如何设置公有变量和私有变量

变量/常数的作用周期实际上就是指:某个变量/常数在什么时候还能调用它所存储的 数据。就像读书时某学校的档案室(模块内私有量),该校校长随时可以查阅该校师生(数据) 所有档案;但是如果是其他学校的人员,那么他(模块外)就不能随意查阅这个学校的师生 档案了。

而现在区教育厅弄了一个大型的学校档案室,将原来各校的档案都归集了(模块级公有量), 任何人只需要获取批准(知道公有变量名称)就可以轻松调阅所有档案了。

大型档案室就如同公有量,所有指定的数据都被写在这公有量内,且其他非该模块内的过 程都可以读取其中的数据内容。

将这个理论套用到代码中,在模块1的顶部声明3个变量:模块内公有变量、模块内私 有变量01和模块内私有变量02。其中公有变量用Public 语句声明,模块内私有变量01使用 Private 语句声明,模块内私有变量02使用Dim 语句声明。

模块1相当于某学校,而其中的公有变量相当于已经归档到了区设置的大型档案室;私有 变量01和私有变量02 则视为该校的档案室。

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_2.6.1 如何设置公有变量和私有变量

? 皮蛋:言子等会,你这私有变量01和02,为什么说它们视为同一档案室呢? 无言:其实在顶端使用Private和Dim语句声明作用一样,这个等下再说。

现在来设置4个子过程:首先通过代码2-19 的“赋值变量”过程分别对顶端的3个变 量进行赋值,代码2-20过程则是在过程内部声明新的变量“过程内私有变量01”,并通过 Msgbox 函数提示;代码2-19和代码2-20过程起到给变量赋值的作用。

接着代码2-21过程为在模块1(本模块)中通过“获取已赋值的变量”过程来获取顶端变 量的值及代码2-20中的变量值,并显示它们的各自的具体赋值。

接着插入一个新的模块“模块2”,并在其中通过代码2-22的过程,跨模块调用模块1中顶端变量及代码2-21 中的过程私有变量,并显示它们的具体赋值,4个过程代码如下。

代码2 - 19 模块1中的顶端变量赋值

1|Rem 声明3个顶端变量

2|Rem Public和 Private均无法在过程内声明变量

3|Public 模块内公有变量 As String

4|Private 模块内私有变量01 As String

5|Dim 模块内私有变量02 As String

6|

7|Sub 赋值变量)

8| 模块内公有变量=”我是在模块1中的顶部Public语句声明的模块内公有变量”

9| 模块内私有变量01="我是在模块1中的顶部 Private语句声明的模块内私有变量01"

10| 模块内私有变量02=”我是在模块1中的顶部Dim 语句声明的模块内私有变量02”

11|End Sub

代码2 - 20 模 块 1 中的过程内变量赋值

1|Su b 过程内变量(

21 Dim 过程内私有变量01 As String

3| 过程内私有变量01="我是在模块1中过程内变量 Private 语句声明的过程内私有变量01" 4| MsgBox 过程内私有变量01

5|End Sub

代码2 - 21 模块1中调用两个赋值过程,并显示赋值情况

1|Sub 获取已赋值的变量)

2| 赋值变量

3| MsgBox 模块内公有变量 ‘显示该变量的赋值内容

4| MsgBox 模块内私有变量01’显示该变量的赋值内容

5| MsgBox模块内私有变量02'显示该变量的赋值内容

6| 过程内变量

7| MsgBox 过程内私有变量01'不显示该变量的赋值内容

8|End Sub

运行代码2-21过程,它将调用代码2-19和代码2-20过程。接下来代码2-21 将先运行代 码2-19赋值顶端变量过程,过程运行后显示的变量情况如图2-52~2-54 所示,显示了各自的 赋值数据。

代 码 2 - 2 2 跨模块在模块2中调用模块1中的过程

1|Sub 跨模块调用变量0

21 MsgBox 模块内公有变量 '显示该变量的赋值内容

3| MsgBox 模块内私有变量01'不可显示该变量的赋值内容

4| MsgBox 模块内私有变量02'不可显示该变量的赋值内容

5|End Sub

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.2 创建批注: Range.AddComment
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_3.1 pyc 文件
相关文章
×