1

Excel マクロでパフォーマンスの問題が発生しています。ある特定のコードの実行が非常に遅くなります。その理由は機能にあると思いOffsetます。私はそれが多くの再計算を行う揮発性関数であることをオンラインで発見しました。
奇妙なことに、VBA関数として使用しているため、再計算する必要がないため、パフォーマンスにどのように影響するかわかりません。

これは、オフセット関数の使用方法です。

For i=0 To 10
 For P=0 To 3
  For T=0 To 3
    Range("C9").Offset(6 * i + T, P).Value = effect(i,P,T)
  Next
 Next
Next

より高速な (不揮発性?) 代替手段はありますか?

4

1 に答える 1

8

やってみましたCells(row,column).Value = ...

明らかに、C9 (9,3) の開始位置を調整rowして説明する必要があります。column

また、関数がボトルネックではないことを確信していますeffect()か?

アップデート:

また、試しましたか

Application.Calculation = xlCalculationManual
    ....Your Code....
Application.Calculation = xlCalculationAutomatic
于 2010-09-17T09:51:12.817 に答える