我有一个程序,它从大约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
有人能够帮忙解决这个问题吗?
答案 0 :(得分:0)
您可以使用cells()创建范围。
range(cells(rowindex,columnindex).address & ":" & cells(rowindex,columnindex).address)
cells()使用整数来引用行和列,因此您应该可以使用数组中的值。