将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的变体数组,包含string,货币和双打。 出于某种原因,当我用rng = works输出数组时,只有前156行被正确输出,从此我什么也得不到。

代码似乎仍然在运行,如果我点击在该范围内的单元格,我可以看到公式栏疯狂闪烁。 当我尝试停止或破坏执行Excel的代码只是崩溃。 有没有人经历过类似的事情,并得到了一个工作解决scheme,因为我难住?

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