如何在不使用循环的情况下将二维数组的一部分粘贴到工作表范围内?

时间:2014-12-14 13:08:39

标签: vba

如何将二维数组的一部分粘贴到工作表范围而不使用循环? 粘贴整个数组非常简单:

Sub TestPasteArrayIntoRange()

    Dim MyArray As Variant

    MyArray = [{1,2;3,4;5,101}]

    selection.Resize(UBound(MyArray, 1), UBound(MyArray, 2)) = MyArray

End Sub

但是仅粘贴第二行(我们可以通过简单的减少选择大小到一行来过去的第一行)怎么样?我已经看到了使用Index Excel函数的一维数组的情况的答案,但它并不适用于此处。

我的第一个想法是将数组复制到范围中,然后从中复制行,但似乎我无法创建范围对象,这不是某些工作表对象的一部分(特别是在没有虚拟工作表的情况下无法创建虚拟范围)。

1 个答案:

答案 0 :(得分:1)

我认为你只需创建另一个功能,例如GetRow()或GetColumn()返回包含所需选择值的简化向量(或数组)。这里有一些功能可以用于您的目的:http://www.cpearson.com/excel/vbaarrays.htm