arrays - 如何粘贴整个数组而不在VBA中遍历整个数组?

标签 arrays excel vba excel-vba

我有这段代码将填充一个数组

Sub rangearray()

    Dim arr() As Variant
    Dim Rng As Range
    Dim myCell As Range
    Dim i As Integer

    Set Rng = ActiveSheet.Range("G10:G14")

    For Each myCell In Rng
        ReDim Preserve arr(i)
        arr(i) = myCell
        i = i + 1
    Next myCell

    ActiveSheet.Range("H10:H14") = arr()

End Sub


在这里,您可以看到监视窗口中的值是已加载的值



例外,当我将数组添加回工作簿时,它只会粘贴回数组的第一个元素。



是否可以将整个数组粘贴到工作表中而不必遍历整个数组?

看完Sorceri的链接后,我已修改为使用.Transpose函数的代码,因此现在修改后的代码如下所示:

Sub rangearray()

    Dim arr() As Variant
    Dim Rng As Range
    Dim myCell As Range
    Dim i As Integer

    Set Rng = ActiveSheet.Range("A1:A5")

    For Each myCell In Rng
        ReDim Preserve arr(i)
        arr(i) = myCell
        i = i + 1
    Next myCell

    ActiveSheet.Range("B1:B5") = WorksheetFunction.Transpose(arr)

End Sub

最佳答案

您将要使用转置工作表功能http://msdn.microsoft.com/en-us/library/office/ff196261.aspx

见下文。您必须将其分配给范围的值

Sub rangearray()

Dim arr() As Variant
Dim Rng As Range
Dim myCell As Range
Dim i As Integer

Set Rng = ActiveSheet.Range("A1:A5")

For Each myCell In Rng
    ReDim Preserve arr(i)
    arr(i) = myCell
    i = i + 1
Next myCell

ActiveSheet.Range("B1:B5").Value = WorksheetFunction.Transpose(arr)

End Sub

关于arrays - 如何粘贴整个数组而不在VBA中遍历整个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300555/

相关文章:

php excel 导出 - 文本被分成新行

algorithm - VBA Excel-返回数字或字符串的函数

Excel xll 可用于跟踪已进行了哪些 VBA 和其他插件调用、花费的时间和使用的内存?

javascript - 数组长度与数组中值的数量

c++ - 指针和数组指向数组问题

vba - 一键跨多个电子表格运行 VBA

sql-server-2005 - SQL Server 2005 SSIS 数据传输 SQL 到 Excel 损坏 Excel 文件

vba - 循环工作表时运行时错误 6 溢出

python - numpy 字符数组到字符串

arrays - 如何将 Scala 数组传递给 Scala vararg 方法?