ad

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_2.5.7 Const 的公有和私有设置

网友投稿 132 2023-11-07

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

2.5.7 Const 的公有和私有设置

皮蛋:好的,先休息一分钟。

无言:皮蛋,说说这个Const是公有常数还是私有常数。

皮 蛋 :言子,我知道Public 和 Private就是公有和私有的意思,这个不用解释了,默认 Const是公有常数,对吧!

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_2.5.7 Const 的公有和私有设置

无言:那就错多了——Const 语句默认是私有的,子过程内的常数是不能被本模块中的其 他子过程调用,更别说被其他模块调用。

皮蛋:言子啊,如果声明为Public能用吗?

无言:通过在自过程内声明为公有常数时,其他模块也是不可直接调用的。

子过程内声明的常数无论如何都不能被其他过程调用,不论是否是在声明前Public 都无法改变其私有性质。

皮蛋:言子,我记得你没和我说过公共和私有要怎么设置啊?

无言:不对哈!你该立马补课了,你该看下2.5节。

皮蛋:好的,我去回忆温习下。

无言:在子过程内Const无论是否添加了Public都无法改变其私有性质,除非在模块顶端声 明才有效。

皮蛋:什么是模块顶端?

… 无言:模块顶端就是在第1个过程的顶部,如图2-43所示。

皮 蛋:哦,那不在顶端可以吗,言子?无言:不行,模块内的声明只能放置在模块顶端,否者将出现如图2-44所示错误提示。

皮蛋:明白了!你刚才还说了过程内的常数都是私有的,那么模块声明的呢?

声明模块用变量/常数,只能将声明写在模块顶端。

顶端声明常数(如图2-43所示),如果标明 Public参数则代表该常数可以被任意模块调用; 而如果直接采用Co nst或 Private Const 都是标明该常数只能被当前模块内的子过程调用。

模块顶端

Public Const Tem_N01 As String="皮蛋”'任何模块都可以调用

Private Const Tem_N02 As String="瘦肉”'当前模块任何过程都调用

Const Tem_N03 As String="粥" '同上,只能模块内调用

如何调用公有/私有常数

如果要在同一个模块内调用顶端已声明的所有常数,可以直接在过程中输入已经声明常数 的名称即可,可忽略模块名称,如代码2-14 所 示。

代码2 - 14 模块引用常数

1|Sub模块引用常数0

21 MsgBox Tem_N01 公有

3| MsgBox Tem_N02 私有

4| MsgBox Tem_N03 私有

5|End Sub

如果要在跨模块调用其他模块内的公有常数时,则必须注明调用常数的模块名称+.+常数 名称,才可调用已声明的常数,如代码2-15所示。

代 码 2 - 1 5 跨模块引用常数

1|Sub跨模块引用常数0

2| MsgBox 常数赋值.Tem_N01

3|End Sub

非对象变量的赋值

无言:说完了常数的赋值——Const的用法,接着说变量的赋值。

变量存在两种不同赋值方式, 一种是对于数字、文本等非对象数据类型变量的赋值,另一 种是对对象 (Object) 数据类型变量的赋值。

? 皮蛋: 为什么分两种呢?

1. 非对象变量赋值 —Let

无言:很简单啊,因为赋值方式不同。接下来分别讨论,先说非对象变量的赋值。

所谓非对象变量,指的是声明变量时采用非Object 或者 New 程序等类型的声明,如 Byte、Long、String、Date 等数据类型,直接采用Let语句将表达式的值赋予该变量。来看一 下 Let 的 语 法 及 其 参 数 ( 如 表 2 - 9 所 示 ) 。

[Let]varname =expression 将表达式的值赋给变量或属性

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

上一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_3.1 SQL 主要语句
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_1.1 编程语言的发展
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×