- ベストアンサー
VBAで行をコピーして別のシートに貼付け
- VBAを使用して、現場登録検索のシートの特定の値にマッチする行を一覧シートから検索し、切り取って終了現場に貼り付ける方法についての質問です。
- 現場登録検索のシートの数値F2の値が一覧シートにマッチする行を検索し、その行を切り取り、終了現場に入力されている最終行に貼り付けるVBAのコードでエラーが発生しています。
- RangeクラスのSelectメソッドが失敗しており、黄色でマークされています。解決策を教えてください。
- みんなの回答 (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 は不要です。
その他の回答 (1)
- AloneAgain
- ベストアンサー率71% (285/400)
こんばんは。 Sheets("終了現場").Range("A1").Select の前に Sheets("終了現場").Activate を入れてみてください。 ------------------------------------- Sheets("終了現場").Activate Sheets("終了現場").Range("A1").Select -------------------------------------
補足
さっそくのお返事ありがとうございます。<m(__)m> Sheets("終了現場").Activate を入力しました。 すると今度は ActiveSheets.Paste がエラーになります。 以前はうまくいったのですが。。。
お礼
Worksheets("一覧").Rows(行).Copy _ Destination:=Worksheets("終了現場").Range("A1").End(xlDown).Offset(1, 0) Worksheets("終了現場").Select ありがとうございました。 上記の方ではうまく動きました。 おかげさまで、日常の業務がスムーズに運びます。<m(__)m> VBAは便利なのですが 私にはなかなか難しく・・・。 勉強になります。 これからもよろしくお願い致します。