
この様なシート1があります。行数は不定です。
A列 B列 C列 D列 E列 F列 G列 H列
20170101 1AA 6BB 15.1 C1C 6DD 1FF GG1
20170101 2AA 5BB 10.1 C2C 5DD 2FF GG2
20170102 3AA 4BB 11.1 C3C 4DD 3FF GG3
20170102 4AA 3BB 19.1 C4C 3DD 4FF GG4
20170103 5AA 2BB 15.1 C5C 2DD 5FF GG5
20170103 6AA 1BB 23.1 C6C 1DD 6FF GG6
これを日付別にD列の最大値を抽出した行のデータをシート2へ転記したいです。
シート2の結果
A列 B列 C列 D列 E列 F列 G列 H列
20170101 1AA 6BB 15.1 C1C 6DD 1FF GG1
20170102 4AA 3BB 19.1 C4C 3DD 4FF GG4
20170103 6AA 1BB 23.1 C6C 1DD 6FF GG6
手動で行うなら日付でフィルターをかけ、D列を降順でソートし、1行目を
シート2へ貼り付けるといった感じになると思いますがこれをVBAでやったら
どうなるのかご教授願えますでしょうか。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは!
一例です。
↓の画像のように両シートとも1行目は項目行でデータは2行目以降にあるとします。
Sheet2の1行目項目は入力済みだという前提です。
標準モジュールです。
Sub Sample1()
Dim i As Long, k As Long, lastRow As Long
Dim c As Range, wS As Worksheet, myMax As Variant
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(wS.Cells(2, "A"), wS.Cells(lastRow, "H")).ClearContents
End If
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
For k = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(k, "A") = wS.Cells(i, "A") Then
myMax = WorksheetFunction.Max(myMax, .Cells(k, "D"))
End If
Next k
Set c = .Range("D:D").Find(what:=myMax, LookIn:=xlValues, lookat:=xlWhole)
wS.Cells(i, "B").Resize(, 7).Value = .Cells(c.Row, "B").Resize(, 7).Value
myMax = Empty
Next i
End With
Application.ScreenUpdating = True
wS.Activate
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel_マクロ_アクティブシートのVLOOKUPで表示された#N/A以外の行に色付けをしたいです 3 2023/02/17 00:40
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- 統計学 お酒に強い人の割合について 2 2022/09/10 18:42
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Visual Basic(VBA) 別ブックの列同士の値が一致したときの処理 1 2022/09/03 08:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
エクセル(勝手に太字になる)
-
エクセル 同じ値を探して隣の...
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
-
「B列が日曜の場合」C列に/...
-
2つのエクセルのデータを同じよ...
-
VBAで特定の文字を探して隣のセ...
-
文字を入力したら数値が自動入...
-
お店に入るために行列に並んで...
-
エクセルで文字が混じった数字...
-
エクセルの並び変えで、空白セ...
-
メッセージボックス 1度だけ表...
-
文字列に数字を含むセルを調べたい
-
エクセル 複数列の入れ替えに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
Excelで半角の文字を含むセルを...
-
「B列が日曜の場合」C列に/...
-
エクセルで、列の空欄に隣の列...
-
Excel 文字列を結合するときに...
-
Excel、市から登録している住所...
-
【VBA】特定列に文字が入ってい...
-
エクセルのセル内の文字の一部...
-
エクセル 同じ値を探して隣の...
-
お店に入るために行列に並んで...
-
エクセルの並び変えで、空白セ...
-
文字列に数字を含むセルを調べたい
-
エクセルの項目軸を左寄せにしたい
おすすめ情報