長いループを実行するとコードの速度が低下するという問題があります (Excel 07 で VBA を使用)。1 つのブロックとしてではなく、多くの異なるセルに個別に書き込みを行っているため、この速度低下が発生していると 95% 確信しています。
ただし、書き込む必要があるセルのほとんどが連続しておらず、連続していないため、これを修正する方法がわかりません。以下を例にとります。
ActiveSheet.Range("b2").Value = Sheet6.Cells(regionMembers(i), 2)
ActiveSheet.Range("j4").Value = Sheet6.Cells(regionMembers(i), 4)
ActiveSheet.Range("e6").Value = Sheet6.Cells(regionMembers(i), 5)
ActiveSheet.Range("d22").Value = Sheet6.Cells(regionMembers(i), 6)
ActiveSheet.Range("d23").Value = Sheet6.Cells(regionMembers(i), 7)
これは、書き込む必要があるセルの小さなセクションです (合計はループごとに約 150 であり、ループは配列 regionMembers() の範囲であり、領域メンバーは最大 40 ~ 50 の値を保持できます)。
sheet6 の値をバリアント配列に書き込み、それをアクティブ シートの 1 つのブロックに貼り付ける方法はありますか?
「A1:A100」のような範囲を知っています。おそらく範囲を(「A1」、「A100」)に設定し、貼り付けたいすべての値を配列に保存してから、次のようにします。
myRange.Value = myArray
しかし、範囲が連続していない場合、これを行う方法がわかりません。
どんな助けでも大歓迎です。