迟绑定一个数组
我很难过 ,因为我无法find任何关于在VBA中绑定数组的问题。 这甚至有可能吗? 如果是的话,怎么样? 如果不是 – 为什么?
注意:我不介意使用像.Net / C#这样的原生types
Dim o as Object set o = CreateObject("System.Array")
即使System.Array
是COM可见 ,似乎不可能实例化它。
任何想法如何延迟绑定VBA中的数组数据types?
请不要提及Dictionary或Collections,因为这个问题对于数组非常具体
附加信息:
这是我的另一个问题的后续行动。 由于似乎不可能将本地VBA数组传递到本地.Net集合而不循环,我只是想知道是否有可能延迟绑定一个数组,因为两者似乎都是安全的,这意味着它们是兼容的,因此将一个VBA数组传递给一个。净一个将是可能的 – 请纠正我,如果我完全错了。
set o = CreateObject("System.Array")
System.Array是一个抽象类。 所以不,那不可能工作。 数组types是特殊的,它们通常由编译器创build。 后门是Type.MakeArrayType(),你可以构造一个。
没有你想要使用的。 不要这么努力,任何VBA数组已经转换为System.Array。 它通常是一个不符合数组的数组,在索引0处没有它的第一个元素。除非使用类似于Dim arr(0 To 3) As Double
这样的语法,或者使Option Base 0
有效,否则VBA类似于1。 不总是可能的,使用Array.GetValue()来访问一个不符合的数组。 查看示例存取器包装器的其他问题 。