- 締切済み
エクセル2000のマクロについて教えてください。
実は、今日会社で失敗したのですが、エクセルのマクロ実行をしたら、エラー で実行中断となってしまいました。 ワークシートから別のワークシートへコピー&ペーストして印刷というマクロを組みたかったのですが、エラー内容は、 Active Cell Offset(-7,-14).Range("A1:AN15")selectです。 元のワークシートのセル位置と、コピーするワークシートのセル位置は同じ場所でないといけないのでしょうか? セルは同じ数とっているはずなのですが。何回かやってみて、 へんな場所にペーストされて、印刷までは出来たこともあるのですが、何がちがうのだろー。。解らない(;;) だれか教えてください!!!
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
本件はコピー元の表現に問題があるようですが、 別の注意点を1つ挙げます。 私の過去の失敗は、コピー先のほうでした。 コピー先は左上隅のセルを指定し、ActiveSheetに対して Pasteするもので、「Rangeに対してでない」ことに注意。 それらしき表現が見られるので。 Sub test01() Worksheets("sheet1").Range("a1:b5").Copy Worksheets("sheet2").Activate Range("b3").Select ActiveSheet.Paste End Sub Worksheets("sheet2").Range("b3:c7").Pasteではだめ。
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 ActiveCell.Offset(-7, -14).Range("A1:AN15").Select の意味は 「アクティブなセルから、7行上、14列左にいった所を A1 として範囲を選択しなさい」 って事です。 実行時にアクティブセルが 本当の A1 にあったとしたら 7行上にも、14列左にも行けませんので、エラーになります。 セル O8 より右下にアクティブセルがないとエラーになるって事です。 この行の前に Range("O8").Select のように入れるか、この記述を実際の範囲に(例えば Range("N16:BA30").Select)直せば、この部分のエラーはなくなるハズです。
- kazuhiko5681
- ベストアンサー率49% (79/159)
初めまして。 Active Cell Offset(-7,-14).Range("A1:AN15")select これでは、もろにエラーが出てしまいます。 たとえば、シート1のA1~N50にあるデーターをシート2のA2~N51にペーストするのであれば、 workbooks("ブック名.xls").worksheets("シート1").range("A1:N50").copy Destination:=workbooks("ブック名.xls").worksheets("シート2").range("A2") これを続けて1行に書くとコピー・ペーストできます。 まだご不明な点があればご遠慮なくお知らせ下さい。あなた様のおやりになりたいことが実現するまで、私でよろしければご一緒に考えていきたいと思います。