コードの特定の部分を最適化しようとして問題が発生しました。モンテカルロ シミュレーションを実行しており、範囲の値を何度もコピーしたいと考えています。これを行うために、For Each In 構造を使用しました。以下は最小限の例です。
sub example()
Dim live As Excel.Range 'the range to be copied in each For Each In
Dim acell as Excel.Range 'For range
Set live = Range("C5:P5")
For Each acell in Range("B9:B90")
acell.value=live.value
Next acell
End Sub
問題は、 がlive
複数の列にまたがっているのに対し、acell
は 1 つのセルにすぎないことです。結局、最初の列だけがコピーされ、残りは空白になります。また、以前に定義された複数の列と行の範囲であるFor Each acell in XYZ.rows
whereも使用しました。XYZ
ただし、これはかなり遅くなります。
最初のセルから始めて、単一列の範囲を実行し、複数の列を貼り付けることは可能ですか?