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

问题描述 投票:0回答:1

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

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

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

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

excel vb.net range
1个回答
2
投票

是。

简单的方法是使用.Resize

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

一个说明:

以上是针对base 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
© www.soinside.com 2019 - 2024. All rights reserved.