为什么还要对公共变量进行私有变量的更改?

TmS*_*mth 5 excel vba excel-vba

我有一个公共变量Public AssetFamilyCollection As New Collection,它是AssetFamily我创建的classe的集合.

在sub中,我创建了一个AssetFamily实例Dim familyChosen As AssetFamily.然后,当我AssetFamily在集合中识别出我想要的时候Set familyChosen = AssetFamilyCollection(i)

在某些时候,我对familyChosen属性进行了更改,我注意到这些更改也已完成AssetFamilyCollection(i)

我认为它familyChosen是一个私有变量,副本来自AssetFamilyCollection(i) 并且只存在于sub中.显然不是.

为什么公共和私人变量受到变化的影响而不受子变量中的私有变量的影响?

谢谢 !

Bat*_*eba 6

不,它不会那样工作.

变量familyChosen实际上是对数组元素引用的同一对象的引用.

因此,您可以通过该引用或通过数组元素修改该对象.