シート1のA列からZ列まである表でオートフィルターをかけて見出し以外をコピーしたい。
L列で空白以外でフィルターをかけます。
見出し以外のA~K列、S、U、V、W、Z列の値をコピーしたい。
コピーした値は別シートのシート2に左から詰めて貼り付けたい。
シート1のA~K列→シート2のA2からK列に貼り付け。
シート1のS列→シート2のL2へ貼り付け。
シート1のU~W列→シート2のM2から貼り付け。
シート1のZ列→シート2のP2へ貼り付け。
上記が終われば、次にシート1のR列で絞り込み、
シート2の先に貼り付けた下側に同じように貼り付けたい。
フィルターで絞り込む列が、1回1回変わります。
絞り込んだ列は都度変わりますが、貼り付ける場所はL列と決まっています。
絞り込んだ行に対してA~K、S、U、V、W、Z列の値を貼り付けたいです。
ただ絞り込んだときに0行だったり1行だったりします。
0行の場合はないと表示させたいです。
マクロのコードを教えてください。
どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
同じ行がコピーされても問題ないと理解しました。
以下のマクロを標準モジュールに登録してください。
フィルターの列は、L,R,Xの順に行っています。
Option Explicit
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim row2 As Long
Public Sub 空白列以外をコピー()
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
sh2.Rows("2:" & Rows.count).ClearContents
row2 = 2
filter_copy ("L")
filter_copy ("R")
filter_copy ("X")
MsgBox ("完了")
End Sub
Private Sub filter_copy(ByVal col As String)
Dim row1 As Long
Dim maxrow As Long
Dim count As Long
count = 0
maxrow = sh1.Cells(Rows.count, "A").End(xlUp).row 'sheet1 A列の最大行取得
For row1 = 2 To maxrow
If sh1.Cells(row1, col).Value <> "" Then
sh2.Cells(row2, "A").Resize(1, 11).Value = sh1.Cells(row1, "A").Resize(1, 11).Value
sh2.Cells(row2, "L").Value = sh1.Cells(row1, "S").Value
sh2.Cells(row2, "M").Value = sh1.Cells(row1, "U").Value
sh2.Cells(row2, "N").Value = sh1.Cells(row1, "V").Value
sh2.Cells(row2, "O").Value = sh1.Cells(row1, "W").Value
sh2.Cells(row2, "P").Value = sh1.Cells(row1, "Z").Value
row2 = row2 + 1
count = count + 1
End If
Next
If count = 0 Then
MsgBox (col & "列該当データなし")
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Visual Basic(VBA) 範囲を指定して別シートにコピペ 2 2022/09/15 07:32
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Visual Basic(VBA) シート間で同じ値があったら指定範囲をコピーして貼り付け 1 2022/11/07 08:01
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで繰り返しコピーしながら下...
-
エクセルの保護で、列の表示や...
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
オートフィルタ使用時にCOUNTIF...
-
【条件付き書式】countifsで複...
-
【VBA】ピボットテーブルを既存...
-
エクセル マクロ 標準モジュー...
-
エクセルVBA 行追加時に自...
-
エクセルで、book全体の検索&...
-
エクセルの列の限界は255列以上...
-
Excel の複数シートの列幅を同...
-
Excelでの並べ替えを全シートま...
-
エクセルで横並びの複数データ...
-
エクセルVBAで、ある文字を含ん...
-
スプレッドシートでindexとIMPO...
-
シートをまたぐ条件付き書式に...
-
エクセル関数に詳しい方、教え...
-
Excelで全てのシートに一気に列...
-
VLOOKアップ関数の結果の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
オートフィルタ使用時にCOUNTIF...
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
【VBA】シート名と見出しが一致...
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
Excelでの並べ替えを全シートま...
-
【条件付き書式】countifsで複...
-
VLOOKアップ関数の結果の...
-
Excel VBA ピボットテーブルに...
-
エクセル マクロ 標準モジュー...
-
Excelで、ファイル名、シート名...
-
エクセルで、チェックボックス...
-
【VBA】複数のシートの指定した...
-
エクセルVBAで、ある文字を含ん...
-
スプレッドシートでindexとIMPO...
-
SUMPRODUCTにて別シートのデー...
おすすめ情報