2017-12-27 27 views
2

簡単な質問。次のコードは正常に動作します。vba:すべてのシートで同じコードを使用してください

Dim hoja as worksheet 
For Each hoja In Workbooks("Origen.xlsx").Worksheets 
Msgbox hoja.name 
next 

ただし、次のコードは機能しません。誰もがなぜ言い、それを働かせることができますか?

Dim hoja as worksheet 
For Each hoja In Workbooks("Origen.xlsx").Worksheets 
Range("a1:a2").copy Destination:=Range("a3:a4") 
next 

2番目のコードは、シートの1つにコピー/ペーストすることしかできませんが、すべてではありません。 どうかお手伝いできますか?私はとても単純なことでとても不満です。 ありがとう!

答えて

0

Rangeの代わりにhoja.Rangeを試してください。

+0

おかげでたくさん! – Mario

1

Rangeオブジェクトは、修飾されていない場合は、常にアクティブなシートを参照します。あなたが別のシート上のたびにコピー&ペーストしたい場合
は、以下のコードを使用します。

Dim hoja as worksheet 
For Each hoja In Workbooks("Origen.xlsx").Worksheets 
hoja.Range("a1:a2").copy Destination:=hoja.Range("a3:a4") 
next 
+0

Branislavありがとう、とてもシンプルな、私はそれを見ることができない:S。ありがとう!! – Mario

+0

@Marioあなたは大歓迎です。明白なことは間に合うのが一番簡単です。 –

関連する問題