将VBA阵列写入范围仅部分完成

时间:2014-06-16 06:46:55

标签: arrays excel vba excel-vba

我正在处理一个子程序来执行一些计算,并从几个不同的表(相同大小和类似内容)中收集结果,然后将它们转储到工作表中。 目前我的司机看起来像这样:

Sub Driver()
    Dim works() As Variant
    Dim rng As Range
    Dim ws as worksheet

    'This reliably works and outputs an
    works = GenerateWorksArray()
    Set ws = Worksheets.Add
    Set rng = ws.Range("A1:P1").Resize(UBound(works, 1))

    'This is where it all breaks down
    rng = works

end sub

GenerateWorksArray传回的数组是1,500 x 16变体数组,包含字符串,货币和双精度数。出于某种原因,当我用rng = works输出数组时,只有前156行被正确输出,从那时起,我什么都没得到。

代码似乎仍在运行,如果我点击该范围内的单元格,我可以看到公式栏正在大幅闪烁。当我尝试停止或中断代码执行excel时崩溃。有没有人经历过类似的事情并且得到了一个有效的解决方案,因为我很难过?

1 个答案:

答案 0 :(得分:1)

尝试ws.Range("A1").Resize(UBound(works, 1), UBound(works, 2))