集合类无明显原因清空
您好,在我编写的一个应用程序中,我有一个收集类。在一个子集和下一个子集之间,集合从应有的成员变为无成员-这应该是';不可能!在这两者之间没有对集合做任何事情的代码。令人恼火的是,以前的应用程序可以工作,然后我做了一些更改,但它没有#039;t、 我可以一行一行地回去比较修改过的subs,幸运的是,zip文件中有一个旧版本,但在最初的阅读中,我没有发现任何可能导致这种情况的因素。如果能提出任何关于这种行为可能原因的建议,以及需要探索的事情,我将不胜感激,因为现在这让我感到困惑谢谢Jon
本人';m不支持vba,但集合是否静态(共享)
同样,如果你从一个子类转到另一个子类,可能你的类超出了范围并被摧毁了??
是在类内还是在外部模块中?如果external是从一个子类传递到另一个子类的类实例,它是一个成员变量(可能在其中一个子类中声明为局部变量),它是全局的吗?此外,您是否在任何地方授予对该类的外部访问权限,例如--
Public Function GetCol () as Collection
Set GetCol = myCollection
End Function或Public Property Get NewEnum() As IUnknown
Set NewEnum = myCollection.
End Property 等等
没有尸体很难做验尸(代码后)
本人';我很确定这与存储集合类的变量的范围有关 ;请密切注意该变量何时初始化以及何时销毁。 特别要注意的是,如果为集合类定义了一个全局变量,并且在子或函数内声明了一个同名变量,则第二个(局部)变量用于该子或函数中的所有内容,并在子或功能完成时被销毁。 谢谢你的建议。问题已解决-我已成功申报了两次收藏;一个是普通模块中的公共模块(这是我想要的,因此所有应用程序都可以访问它,另一个是类模块中的私有模块-这是令人不快的一句话,一旦删除,它就会正常工作。再次感谢您的帮助。Jon 很高兴你把它整理好了,尽管我毫无疑问给了你同名的、聪明的lil;格罗米特是个家伙
页:
[1]