从阵列写入单元格时是否需要指定范围?

时间:2017-12-19 18:42:52

标签: excel vb.net range

我有一个可变大小的2D数组,可以在行和列维度上进行调整。当我将数组中的数据写入excel中的范围时,我正在使用这行代码:

Wksht.Range("A1:I2019").Value = dataArr

其中dataArr是我需要在Excel中写入范围的数组。

我想保持我的范围(A1:I2019)变量以接受任何大小的数组。有没有一种有效的方法来解决这个问题?我在考虑使用某种类型的字符串构建器或string.concat函数,同时计算我的数组的行和列,但我觉得必须有更好的方法。

1 个答案:

答案 0 :(得分:2)

简单的方法是使用.Resize

Wksht.Range("A1").Resize(ubound(dataarr,1),ubound(dataarr,2)).Value = dataArr

一个注意事项:

以上内容专门针对基数为1的数组。对于基数0数组+ 1和ubound()。

如果你的数组以0或1之外的其他东西开始,这不常见但不是闻所未闻,或者,如果你不确定哪个,那么你可以使用它:

Wksht.Range("A1").Resize(ubound(dataarr,1)-Lbound(dataarr,1)+1,ubound(dataarr,2)-Lbound(dataarr,2)+1,).Value = dataArr