VBA对象的Collection属性包含数据,但不允许我访问它(得到EOF / BOF错误)

时间:2011-12-06 11:18:08

标签: oop vba excel-vba excel

我在Excel项目中有一个类模块,它有一个名为Marks的属性,这是一个VB集合,并且有一个公共get属性(但没有set或let)。

我可以毫无问题地为此分配值:

myObject.Marks.Add 3.14159

然而,当我尝试用这个对象做某事时(例如,迭代它),我得到一个错误:

3021: Either BOF or EOF is true or the current record has been deleted

但是,如果我尝试myObject.Marks.Count,它会显示该集合包含我期望的数据量...我无法访问它!

我真的不明白为什么。我在对象中使用与其他集合属性相同的进程 - 甚至是集合的集合 - 并且它们工作正常。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

myObject.myCollection.Add recordset!field将记录集字段对象添加到myCollection对象,而不是其值。因此,只需将字段转换为适当的类型即可解决问题。