乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 109|回复: 6

集合类无缘无故清空

[复制链接]

3

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
23
发表于 2006-7-30 17:21:53 | 显示全部楼层 |阅读模式
你好
在我编写的一个应用程序中,我有一个集合类。在一个子和下面的子之间,集合从应该有成员变成没有成员——这不应该发生!中间没有任何代码对集合做任何事情。烦人的是应用程序曾经工作过,然后我做了一些更改,但没有。我可以回去逐行比较更改后的子文件,因为幸运的是zip文件中确实有一个旧版本,但在最初的细读中,我没有发现任何可能导致这种情况发生的东西。
任何关于这种行为的可能原因的建议,需要探索的东西,都会非常感激,因为现在这让我很困惑。
谢谢
乔恩

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-7-30 17:36:29 | 显示全部楼层
我没有使用vba,但集合是静态的(共享的)吗?
另外,如果你从一个子到另一个子,也许你的类超出了范围并被摧毁了??
回复

使用道具 举报

2

主题

37

帖子

2

银币

初来乍到

Rank: 1

铜币
45
发表于 2006-7-30 17:39:18 | 显示全部楼层

在类中还是在外部模块中?如果external是从一个sub传递到另一个sub的类实例,那么它是成员变量(并且可能在其中一个sub中声明为局部变量)吗,它是全局变量吗...
另外,您是否在任何地方授予对该类的外部访问权限,例如-
  1. Public Function GetCol () as Collection
  2.     Set GetCol = myCollection
  3. End Function


  1. Public Property Get NewEnum() As IUnknown
  2.     Set NewEnum = myCollection.[_NewEnum]
  3. End Property
等。
没有尸体很难进行验尸(张贴代码)。
回复

使用道具 举报

2

主题

37

帖子

2

银币

初来乍到

Rank: 1

铜币
45
发表于 2006-7-31 12:03:53 | 显示全部楼层
我很确定这与你存储集合类的变量的范围有关。请密切注意该变量何时被初始化,何时被销毁。
回复

使用道具 举报

3

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
23
发表于 2006-7-31 12:06:43 | 显示全部楼层
特别要注意的是,如果为集合类定义了一个全局变量,并且在sub或function中声明了一个同名的变量,那么第二个(局部)变量将用于该sub或function中的所有内容,并在sub或function完成时被销毁。
回复

使用道具 举报

3

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
23
发表于 2006-8-4 15:55:39 | 显示全部楼层
谢谢你的建议。问题解决了——我成功地声明了集合两次;一个是普通模块中的公共行(这是我想要的,所以它可以被所有的应用程序访问,另一个是类模块中的私有行——这是令人讨厌的行,一旦删除它,一切都会正常工作。再次感谢你的帮助。
乔恩
回复

使用道具 举报

3

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
23
发表于 2006-8-5 09:52:38 | 显示全部楼层
很高兴你把它解决了,我毫不怀疑你的名字,聪明的家伙,格罗米特是。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 03:24 , Processed in 0.980951 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表