2017-11-21 9 views
0

ブック内のすべてのワークシートをループ処理しようとしています。各シートで、あるセルから値をコピーし、その値をそのワークシート内の別のセルに貼り付けてから、ワークブックを続けます。私はしかし、すべてのワークシートをループを書いたコードは、シートにコピーペーストを行い、そのマクロが実行されたときに...各ワークシートで単純なコピー/ペーストループが機能しない

Sub CleanUp() 

Dim ws as Worksheet 

For Each ws in ThisWorkbook.Sheets 
    Range("BB2").Copy Range("A1") 
Next ws 

End Sub 

は実際に、私は変化のより複雑なシリーズを実行するにはしかし、私はこれを正しく動作させることさえできません。

答えて

1

は、各範囲にワークシートを追加します。

Sub CleanUp() 

Dim ws as Worksheet 

For Each ws in ThisWorkbook.Sheets 
    ws.Range("BB2").Copy ws.Range("A1") 
Next ws 

End Sub 
+0

最適です。大いに感謝します – jules325

2

速く実行できる代替ソリューション:

Sub CleanUp() 

Dim ws as Worksheet 

For Each ws in ThisWorkbook.Sheets 
    ws.Range("A1").Value = ws.Range("BB2").Value 
Next ws 

End Sub 
+0

クリップボードを避けるので、最も確実に速くなります。ここでは目立たないかもしれませんが、良い助言とより堅牢です。 –

+0

私はそれを感謝します。私はかなり新しくコーディングしており、これが.valueとコピー方法の違いであることを認識していませんでした。 – jules325

+0

問題はありません。値のコピーと貼り付けの代わりに '.Value'プロパティを使用することをお勧めします。 –

関連する問題