- ベストアンサー
このコードの修正を教えてください !
下記コードが、動作しませんので、どのように修正すればよろしいのでしょか? Sh.Range("A1").Select がエラーになるようですが、よくわかりません。 以上 何卒、よろしくお願いいたします。 ---------------- Sub 指定したシートだけに目的データをコピー() For Each sh In Workbooks("あ.xls").Sheets '下記シート3つは、手動にて挿入したシートで、場所は前後しています If sh.Name = "Sheet1" Or sh.Name = "Sheet2" Or sh.Name = "Sheet3" Then Workbooks("い.xls").Activate Sheets("Sheet3").Select Selection.CurrentRegion.Select Selection.Copy Workbooks("あ.xls").Activate Sh.Range("A1").Select ActiveSheet.Paste End If Next End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SelectしていないシートのセルはSelect出来ないので NO1さんの回答にあるように先ずシートをSelectしてから、セルをSelectします。 ですからそういうことを考慮に入れなくてもいいように、また無用なSelectはしないように次のようにするのが一般的だろうと思います。 ------------------------------------------------ Sub 指定したシートだけに目的データをコピー() Dim Sh As Worksheet For Each Sh In Workbooks("あ.xls").Sheets If Sh.Name = "Sheet1" Or Sh.Name = "Sheet2" Or Sh.Name = "Sheet3" Then With Workbooks("い.xls").Sheets("Sheet3") .Range("A1").CurrentRegion.Copy Destination:=Sh.Range("A1") End With End If Next End Sub -------------------------------------------------------
その他の回答 (1)
- ForestRain
- ベストアンサー率63% (14/22)
こんにちは。 とりあえず、 >Sh.Range("A1").Select のところを、 Sh.Select Range("A1").Select としてみては、どうでしょうか。
お礼
即答、誠に有難うございました。 実行できました。
お礼
ご回答、有難うございました。 すごいですね、画面が静止するんですね。 自身の他のコードも、よく動いてしまっております。