我有一个运行时间很长的例程,因为有一个大循环,它会在工作表中逐单元格写入值。我想我会很聪明,首先将所有东西加载到2D数组中,然后迅速将其转储到excel表中。目标是加快速度。发现我不能随心所欲。
xlsheet.Range("C2") = MASTER_OUT发现上面的方法不起作用。MASTER_OUT是一个具有34 cols和各种行的2D数组。我希望我不必循环遍历数组并将数据单元格逐个放在工作表中,因为这样做不会节省任何时间。
发布于 2016-06-02 22:34:28
xlsheet.Range("C2").Resize(UBound(MASTER_OUT, 1), UBound(MASTER_OUT, 2)) = MASTER_OUT翻转行和列是很常见的。如果是这样的话,那么就使用Excel应用对象的转置函数,并翻转弯道的等级。
xlsheet.Range("C2").Resize(UBound(MASTER_OUT, 2), UBound(MASTER_OUT, 1)) = _
Application.Transpose(MASTER_OUT)请注意,转座子有限制。我认为它在无符号整数的最大值(例如65,536 (.?)
参见数据文件中Excel中的Error13获得可靠的2D转置辅助函数,不受限制。
https://stackoverflow.com/questions/37603174
复制相似问题