• ベストアンサー

このコードの修正を教えてください !

下記コードが、動作しませんので、どのように修正すればよろしいのでしょか? 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

質問者が選んだベストアンサー

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.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 -------------------------------------------------------  

oshietecho-dai
質問者

お礼

ご回答、有難うございました。 すごいですね、画面が静止するんですね。 自身の他のコードも、よく動いてしまっております。

その他の回答 (1)

回答No.1

こんにちは。 とりあえず、 >Sh.Range("A1").Select のところを、 Sh.Select Range("A1").Select としてみては、どうでしょうか。

oshietecho-dai
質問者

お礼

即答、誠に有難うございました。 実行できました。

関連するQ&A

専門家に質問してみよう