后期绑定一个数组

时间:2014-05-20 17:00:52

标签: c# arrays excel vba com

由于在VBA中后期绑定数组后找不到任何,我感到非常难过。这甚至可能吗?如果有,怎么样?如果没有 - 为什么?

注意:我不介意是否可以使用原生的.Net / C#类型,如

Dim o as Object
set o = CreateObject("System.Array")

即使System.Array is COM visible似乎无法实例化它。

知道如何在VBA中延迟绑定数组数据类型吗?

请不要提及字典或集合,因为这个问题非常特定于数组


其他信息:

这是对my other question的跟进。由于似乎不可能在没有循环的情况下将本机VBA数组传递给本机.Net集合,我只是想知道是否可以将数组延迟绑定为似乎安全的数据,这意味着它们是兼容的,因此将VBA数组传输到。网络是可能的 - 如果我完全错了,请纠正我。

1 个答案:

答案 0 :(得分:3)

  set o = CreateObject("System.Array")

System.Array是一个抽象类。所以不,那可能无法奏效。数组类型是特殊的,它们通常由编译器创建。后门是Type.MakeArrayType(),你可以构造那个

您不想使用任何内容。不要这么努力,任何VBA阵列都已转换为System.Array。它通常只是一个不符合的数组,它的第一个元素没有索引0.VBA喜欢1,除非你使用像Dim arr(0 To 3) As Double这样的语法或者{{ 1}}实际上。并非总是可行,使用Array.GetValue()来访问不符合的数组。查看您的other question以获取示例访问者包装。

相关问题