网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月31日
漏签
0
天
vba吧
关注:
16,972
贴子:
66,178
看贴
图片
吧主推荐
游戏
11
回复贴,共
1
页
<<返回vba吧
>0< 加载中...
结论:VBA中也可以有静态类(即无需实例化就能用)
只看楼主
收藏
回复
烟雨江南ooo
自成一派
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
VB_PredeclaredId属性设置为True意味着编译器生成一个以类模块本身命名的全局(或者project-scoped,如果类是私有的)实例。
换句话说,实际上有一个名为Class1的对象/实例(假设类模块名为Class1),公开了由Class1模块定义的默认接口(即,它是一个compile-time类型为Class1的对象,而不管该类可能实现的是什么其他接口)。
因此,您没有实例化它,但VBA编译器会实例化它。
烟雨江南ooo
自成一派
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@lxlzmh2002
@跟着南哥混3天饿9顿
@ISD_狮子座
在此感谢各位大佬指点探讨。其中@贴吧用户_QGDQN8V 提出的VB_PredeclaredId = True很关键,忏愧,我一般晚上接触电脑,晚上做其它事就懒得去研究了,今天才解决。
烟雨江南ooo
自成一派
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如图,把类模块ArrayUtil导出,再用记事本打开ArrayUtil.cls文件,把VB_PredeclaredId = True,保存,再把类模块ArrayUtil移除,重新导入这个修改后的类模块cls文件,然后就可以用类模块名字直接调用方法了。
烟雨江南ooo
自成一派
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不过这函数前加static感觉没什么用,如果是static sub,应该就是sub里面每一个变量都会保存着上一次的值吧
跟着南哥混3天饿9顿
初涉江湖
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
5.2.4.1.1类可访问性和实例化
项目
2020/10/16
1 个参与者
反馈
按类名引用类的能力由该类定义中的可访问性(权限设置)决定。此可访问性不同于使用类名创建new class(实例)。
类模块中的可访问性(权限设置)和实例化类的特性由类模块的属性(attribute)决定。 模块声明,如下表所定义:
下面中间改为:这类在封闭项目和引用该封闭项目的项目具有可行性。
一个实现可能会定义额外的实例化模式, 应用于由库项目定义的类。
共同学习一下
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示