使用VBA将2维数组卸载到Excel工作表中的最快方法是什么?

我有一个运行很长的例程,因为在工作表中逐个单元格地写入值。 我以为我会很聪明,首先将所有内容加载到二维数组中,然后迅速将其转储到Excel表格中。 目标是加快速度。 发现我不能做我想做的事情。

xlsheet.Range("C2") = MASTER_OUT 

发现以上不起作用。 MASTER_OUT是一个二维数组,有34列和不同的行。 我希望我不必循环访问数组,并在工作表中放置数据单元格,因为这样不会节省任何时间。

使用UBound函数调整目标位置。

 xlsheet.Range("C2").Resize(UBound(MASTER_OUT, 1), UBound(MASTER_OUT, 2)) = MASTER_OUT 

附录:

翻转行和列是很常见的。 如果是这种情况,则使用Excel应用程序对象的TRANSPOSEfunction并翻转ubound等级。

 xlsheet.Range("C2").Resize(UBound(MASTER_OUT, 2), UBound(MASTER_OUT, 1)) = _ Application.Transpose(MASTER_OUT) 

请注意, TRANSPOSE有限制¹ 。 我相信在无符号整数的最大值周围(例如65,536(…?))开始变得不可靠


¹请参阅数据文件中的Excel VBA中的Error13,以获取可靠的2D转置帮助函数,而不受限制。