c#enumerable class – 与VBA兼容
我尝试了一个名为People的测试类,它实现了IEnumerable并包含一个Person对象数组.“foreach”构造在C#中运行良好,但在VBA中我只能循环使用老式的方式.这个VBA代码工作得很好:但这在运行时失败:这是C#代码:解决方法尝试将[dispId(-4)]添加到GetEnumerator()方法中.这会将其标记为disPID_NEWENUM成员.为了使VBA与ForEach一起使用集合,它需要通过COM实现_newEnum.这可以通过实现一个枚举器并使用适当的dispId来实现.这通常通