基于VB.NET中2D阵列的内容动态设置Excel范围

时间:2014-02-04 17:46:52

标签: vb.net excel multidimensional-array excel-interop

我有一个程序,它从大约100个SQL过程之一构建一个2D数组,然后将数组的内容放到Excel电子表格中。因为数组的大小是可变的,基于正在运行的过程(以及过程包含的任何参数),excel电子表格的范围必须是动态的,这意味着我不能硬编码像“A1:R3”这样的范围< / p>

目前,我使用以下代码行来设置范围:

objxlRange = objxlOutSheet.Range(Chr(strOutputArray.GetLowerBound(1) + 1 + 64) & (strOutputArray.GetLowerBound(0) + 1) & ":" & Chr(strOutputArray.GetUpperBound(1) + 1 + 64) & (strOutputArray.GetUpperBound(0) + 1))

现在,在100个程序中的99个程序中,这可以顺利进行。但是,有一个我们遇到问题的程序。我们用于运行该过程的数据返回44行和32列的数据集。我可以将范围硬编码到A1:AF45,并且程序运行,但尝试动态创建该范围,就像我为其他procudures做的那样,错误输出HRESULT:0x800A03EC

有人能够帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用cells()创建范围。

range(cells(rowindex,columnindex).address & ":" & cells(rowindex,columnindex).address)

cells()使用整数来引用行和列,因此您应该可以使用数组中的值。