|
Function copy2(rngFrom As Range, rngTo As Range)
Dim v
v = rngFrom.Value
rngTo.Resize(UBound(v, 1), UBound(v, 2)) = v
End Function
と定義しておいて、
Call copy2(ws1.Range("AA157:AD256"),ws2.Range("H155"))
などとしてみてはどうですか?
今のコードでもセルを一つずつコピーしているわけではないから、
どの程度のスピードアップにつながるのかは不明だが。
(3割くらいにはなるのかも)
以下のようにして速度を測り、その結果をフィードバックしてください。
dim t
t = Timer
' ここで作業
Debug.Print Timer - t '経過時間の出力
それから転記先に計算式が多いのであれば、
手動計算モードにしてから処理実行し、終了後、自動計算に戻すとよいでしょう。
今のコードでも効果あるかもしれません。
# なお、転記元、先に一定の規則性のようなものがありそうで、
# 記述の短縮が図られそうな気もするが、それには触れません。
|
|