No.2
- 回答日時:
>移す行はA5セルにしたいです。
行全てだと思いますが、、、
sheet7の5行目と言う事でしょうか?
Sheet1~Sheet6に複数該当行があった場合、最後に該当した行が上書きされてしまいますが?良いのですか?
sheet7の5行目以降の最終行に追加などで回避できますが、、いかがですか?
No.3ベストアンサー
- 回答日時:
#1,2です。
離れるので、参考マクロを掲示します。
移すは、元の行を削除すると言う事でしょうか、もしそうであれば、ループのやり方など変更が必要です。
サンプルは、sheet7の5行目以降の最終行に追加して行きます。
箇条書きを付けましたので、確認してください。
Option Explicit
Sub Sample()
Dim i As Long, j As Long 'カウント用変数
Dim TgtRow As Long, n As Long '最終行取得用変数
Dim Sht_name As String, TgtSht_Name As Variant 'シート名格納用変数
Dim TgtSht As Worksheet 'ブック内シートオブジェクト用変数
Dim MyKey As Variant '照合キー格納用変数
MyKey = Sheets("Sheet1").Range("Q3") '照合キー(各シート共通)
TgtSht_Name = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6") 'シートを配列で指定
For i = 0 To UBound(TgtSht_Name) '指定したシートを順次実行
For Each TgtSht In ActiveWorkbook.Worksheets 'ブックの中のシートを1つずつ確認
If TgtSht.Name = TgtSht_Name(i) Then 'ブックのシート名と設定した対象シート名が同じなら
n = TgtSht.Cells(Rows.Count, 5).End(xlUp).Row '対象シートのE列の最終行を取得
TgtRow = Sheets("Sheet7").Cells(Rows.Count, 1).End(xlUp).Row '書き出しシートのA列の最終行を取得
If TgtSht.Name = "Sheet1" And TgtRow < 5 Then TgtRow = 4 '照合キーのあるSheet1、3行目より上の行を除外
For j = 4 To n '対象シートの最終行までループ
If MyKey = TgtSht.Cells(j, 5) Then '照合キーと対象シートのE列対象行の値が一致したら
TgtSht.Rows(j).Copy Destination:=Sheets("Sheet7").Rows(TgtRow + 1) 'メイン処理、対象シートの行全てをコピーSheets("Sheet7")のA列の最終行の下行に全てペースト
End If
Next j '対象シートE列最終行までループ
End If
Next TgtSht 'ブック内シートループ
Next i '設定シート名ループ
End Sub
No.4
- 回答日時:
こんばんは、
>MyKey = Sheets("Sheet1").Range("Q3") '照合キー(各シート共通)のところで「インデックスが有効範囲にありません」
Sheet1~Sheet6と書いてありますが、それは、シート名ですか?
TgtSht_Name = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6") 'シートを配列で指定
TgtRow = Sheets("Sheet7").Cells(Rows.Count, 1).End(xlUp).Row
TgtSht.Rows(j).Copy Destination:=Sheets("Sheet7").Rows(TgtRow + 1)
にも影響します。
各、シート名を教えてください。
シート名は、画像参照(画像は" Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6""Sheet7")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでシートコピー後、シート名...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
エクセルの複数シートの保護を...
-
Excelで同じシートのコピーを一...
-
EXCELで1ヶ月分の連続した日付...
-
Accessのスプレッドシートエク...
-
エクセルVBA 串刺し計算の際、...
-
Excel、同じフォルダ内のExcel...
-
Excelで金銭出納帳。繰越残高を...
-
シート名ではなく、相対位置で...
-
シートが違う2枚のエクセルシー...
-
Excelのシートを、まとめて表示...
-
エクセル:ブックを開くとき、...
-
excelでシート毎の最終更新日を...
-
excelで会議室予約表の作成(マ...
-
Excelが開かない!印刷プレビュ...
-
エクセルで前シートを参照して...
-
別シートの最終行に貼り付けす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
エクセル 計算式も入っていない...
-
スプレッドシートの関数VLOOKUP...
おすすめ情報
すみません。Q3はsheet1に有ります。移すsheetはsheet7に移したいです。移す行はA5セルにしたいです。宜しくお願い致します。
行全てで5行目以降です。
仰る通りsheet7の最終行に追加したいです。
丁寧にありがとうございます。
実行してみたところ、MyKey = Sheets("Sheet1").Range("Q3") '照合キー(各シート共通)のところで「インデックスが有効範囲にありません」と出てしまいます。どの様に解決したら良いでしょうか。ご教授ください。何から何まで本当に申し訳ありません。
sheet1~順番に1号機、2号機、3号機、自動倉庫、電気、その他にしてあります。