MickD 发表于 2006-7-30 17:21:53

集合类无明显原因清空

您好,在我编写的一个应用程序中,我有一个收集类。在一个子集和下一个子集之间,集合从应有的成员变为无成员-这应该是'不可能!在这两者之间没有对集合做任何事情的代码。令人恼火的是,以前的应用程序可以工作,然后我做了一些更改,但它没有#039;t、 我可以一行一行地回去比较修改过的subs,幸运的是,zip文件中有一个旧版本,但在最初的阅读中,我没有发现任何可能导致这种情况的因素。如果能提出任何关于这种行为可能原因的建议,以及需要探索的事情,我将不胜感激,因为现在这让我感到困惑
谢谢Jon

竞速随机 发表于 2006-7-30 17:36:29

本人'm不支持vba,但集合是否静态(共享)
同样,如果你从一个子类转到另一个子类,可能你的类超出了范围并被摧毁了??

宁田の恋 发表于 2006-7-30 17:39:18


是在类内还是在外部模块中?如果external是从一个子类传递到另一个子类的类实例,它是一个成员变量(可能在其中一个子类中声明为局部变量),它是全局的吗?此外,您是否在任何地方授予对该类的外部访问权限,例如--
Public Function GetCol () as Collection
    Set GetCol = myCollection
End Function或Public Property Get NewEnum() As IUnknown
    Set NewEnum = myCollection.
End Property 等等
没有尸体很难做验尸(代码后)

男生女生 发表于 2006-7-31 12:03:53

本人'我很确定这与存储集合类的变量的范围有关 请密切注意该变量何时初始化以及何时销毁。

心灵自雨 发表于 2006-7-31 12:06:43

特别要注意的是,如果为集合类定义了一个全局变量,并且在子或函数内声明了一个同名变量,则第二个(局部)变量用于该子或函数中的所有内容,并在子或功能完成时被销毁。

顺水行舟 发表于 2006-8-4 15:55:39

谢谢你的建议。问题已解决-我已成功申报了两次收藏;一个是普通模块中的公共模块(这是我想要的,因此所有应用程序都可以访问它,另一个是类模块中的私有模块-这是令人不快的一句话,一旦删除,它就会正常工作。再次感谢您的帮助。Jon

竞速随机 发表于 2006-8-5 09:52:38

很高兴你把它整理好了,尽管我毫无疑问给了你同名的、聪明的lil;格罗米特是个家伙
页: [1]
查看完整版本: 集合类无明显原因清空