我有一个数组数组。 该数组大999个元素,每个子数组有9999个元素。
在代码的最后部分,我尝试将子程序164改为Range(“A1:A9999”),但它不起作用。
以下是代码的一部分:
MsgBox (UBound(Tiendas(164), 1))
ActiveSheet.Range("B1") = CStr(UBound(Tiendas(164), 1))
ActiveSheet.Range("B2") = Tiendas(164)(33)
Range("A1:A9999") = Tiendas(164)
我的MsgBox返回9999。 B1返回9999。 B2返回元素33中的值。好的。 但Range(“A1:A9999”)= Tiendas(164)是空的。
答案 0 :(得分:0)
数组和范围的大小必须相同,以使粘贴工作效率(即,不通过元素和单元循环)。
这个过程提供了一种动态的方法来实现,只给出[一维或二维]数组,以及表示应该输出数据的左上角的单格range
引用。 / p>
Sub Array2Range(arr, destTL As Range)
'dumps [arr] (1D/2D) onto a sheet where [destTL] is the top-left output cell.
destTL.Resize(UBound(arr, 1) - LBound(arr, 1) + 1, _
UBound(arr, 2) - LBound(arr, 2) + 1) = arr
End Sub
根据我的回答 here 了解更多说明和示例。