• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで行をコピーして別のシートに貼付け)

VBAで行をコピーして別のシートに貼付け

このQ&Aのポイント
  • VBAを使用して、現場登録検索のシートの特定の値にマッチする行を一覧シートから検索し、切り取って終了現場に貼り付ける方法についての質問です。
  • 現場登録検索のシートの数値F2の値が一覧シートにマッチする行を検索し、その行を切り取り、終了現場に入力されている最終行に貼り付けるVBAのコードでエラーが発生しています。
  • RangeクラスのSelectメソッドが失敗しており、黄色でマークされています。解決策を教えてください。

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

  • ベストアンサー
回答No.2

No.1です。 >ActiveSheets.Paste >がエラーになります。 ActiveSheets になっているのなら ActiveSheet にしてください。 ついでに訂正です(エラーとは関係ありませんが・・)。 ------------------------------------- Sheets("終了現場").Activate Sheets("終了現場").Range("A1").Select -------------------------------------  ↓ ------------------------------------- Sheets("終了現場").Activate Range("A1").Select ------------------------------------- Range("A1") の前の Sheets("終了現場")が余計でした。 または↓ ------------------------------------------- Sheets("終了現場").Activate Range("A1").End(xlDown).Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False ------------------------------------------- こちらで試しましたが処理は正常に終わります。 そのままコードをコピーして貼り付けてみてください。 * もうひとつ、ついでに Copy メソッドの引数に転送先を指定する方法もあります。 行 = n のあとに↓ (Copy のあとに半角スペース+アンダースコア( _ ) で改行しています) -------------------------------------------- Worksheets("一覧").Rows(行).Copy _ Destination:=Worksheets("終了現場").Range("A1").End(xlDown).Offset(1, 0) Worksheets("終了現場").Select End Sub -------------------------------------------- これだと ActiveSheet.Paste Application.CutCopyMode = False は不要です。

cocoku
質問者

お礼

Worksheets("一覧").Rows(行).Copy _ Destination:=Worksheets("終了現場").Range("A1").End(xlDown).Offset(1, 0) Worksheets("終了現場").Select ありがとうございました。 上記の方ではうまく動きました。 おかげさまで、日常の業務がスムーズに運びます。<m(__)m> VBAは便利なのですが 私にはなかなか難しく・・・。 勉強になります。 これからもよろしくお願い致します。

その他の回答 (1)

回答No.1

こんばんは。 Sheets("終了現場").Range("A1").Select の前に Sheets("終了現場").Activate を入れてみてください。 ------------------------------------- Sheets("終了現場").Activate Sheets("終了現場").Range("A1").Select -------------------------------------

cocoku
質問者

補足

さっそくのお返事ありがとうございます。<m(__)m> Sheets("終了現場").Activate を入力しました。 すると今度は ActiveSheets.Paste がエラーになります。 以前はうまくいったのですが。。。

関連するQ&A