智能进销存软件:革新现代库存管理
132
2023-11-07
【摘要】 本书摘自《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》一书中第2章,第5节,韩小良著。
2.5.7 Const 的公有和私有设置
皮蛋:好的,先休息一分钟。
无言:皮蛋,说说这个Const是公有常数还是私有常数。
皮 蛋 :言子,我知道Public 和 Private就是公有和私有的意思,这个不用解释了,默认 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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~