Excel VBA – 复制和转置vector的最快方法

我想多次复制和移调一个范围,并寻找最快的方法来做到这一点。 已经写了不同的方式,这两个都很慢。 他们看起来像这样:

... For i = 1 To nrofSims simNr = i Application.Calculate Range(Sim.Range("Res3Top").Offset(1, 0), Sim.Range("Res3Top").Offset(simMonths, 0)).Copy Res3.Range("A4").Offset(i, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True Next i ... 

 ... For i = 1 To nrofSims simNr = i Application.Calculate For j = 1 To simMonths Res3.Range("A4").Offset(i, j) = Sim.Range("Res3Top").Offset(j, 0).Value Next j Next i ... 

是否有可能做一些像rangePaste.value = rangeCopy.value和转置向量?

编辑:

改为下面的代码,而不是更快一点。 但是,正如评论中所写,我可能需要改变现在我的模型正在工作的方式。

 ... Dim res3Sim As Range, res3Store As Range Set res3Sim = Range(Sim.Range("Res3Top").Offset(1, 0), Sim.Range("Res3Top").Offset(simMonths, 0)) Set res3Store = Range(Res3.Range("A4"), Res3.Range("A4").Offset(0, simMonths - 1)) Dim i As Integer For i = 1 To nrofSims simNr = i Application.Calculate res3Store.Offset(i, 1).Value2 = Application.Transpose(res3Sim.Value2) Next i ...