当试图在 VBA 中调用以下 Excel-DNA 方法时,我只得到一个大小为 1 的数组(在 65536 行之后,数组似乎被调整为实际数组大小 - 65537)。当将工作表中的方法作为数组函数调用时,整个过程都有效。
[ExcelFunction(Description = "Example", Name = "Example", HelpTopic = "")]
public static object[] example() {
object[] ret = new object[65537];
return ret;
}
我正在使用 Excel 2007,工作表是 xlsm-Worksheet,当使用这样的二维数组时,一切正常。
[ExcelFunction(Description = "Example", Name = "Example", HelpTopic = "")]
public static object[,] example() {
object[,] ret = new object[65537,1];
return ret;
}
但是以另一种方式使用二维数组,以防万一
[ExcelFunction(Description = "Example", Name = "Example", HelpTopic = "")]
public static object[,] example() {
object[,] ret = new object[1,65537];
return ret;
}
有人知道如何解决这个问题吗?
在 VBA 中做同样的事情效果很好
Function test()
Dim ret As Variant
ReDim ret(65536)
test = ret
End Function
Sub testSub()
Dim output
output = Application.Run("test")
End Sub
输出的维度为 65537(索引从 0 开始),大于 65537 的数字也可以工作。