この様なシート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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【Excel2010】複数行で重複するデータから最大値をひとつだけ抽出する
Excel(エクセル)
-
エクセルで別シートからの最大値の反映
Excel(エクセル)
-
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
-
4
エクセルで最高値、最低値の日付を表示させたい
Excel(エクセル)
-
5
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
6
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
7
VBA 数値を文字列として貼付したい
Excel(エクセル)
-
8
VBA 指定した列にある日時データから時間を削除する方法について
Excel(エクセル)
-
9
(VBAにて)日付でデータを抽出するやり方
Excel(エクセル)
-
10
VBAの複数のセルのコピー法がわかりません。
Excel(エクセル)
-
11
【Excel VBA】データ貼り付け先のシート名選択
Excel(エクセル)
-
12
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
13
変数の宣言の名称を教えてください。(Dim i As Long)
Access(アクセス)
-
14
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
15
毎日の最大値を取得したいです。
Excel(エクセル)
-
16
エクセルで時間指定した最大・最小を求めたい
Excel(エクセル)
-
17
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
18
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel元に戻す方法を教えてくだ...
-
エクセルで二つの数字の小さい...
-
「B列が日曜の場合」C列に/...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
PowerPointで表の1つの列だけ...
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
Excelで半角の文字を含むセルを...
-
VBAで文字列を数値に変換したい
-
エクセルで、列の空欄に隣の列...
-
スマートな関数を教えて下さい。
-
エクセル 文字数 多い順 並...
-
Excel、市から登録している住所...
-
エクセルかグーグルスプレッド...
-
エクセルで文字が混じった数字...
-
エクセルで2列のセルを連続して...
-
B列の値がA列にあるかを調べる関数
-
エクセル ひらがなの文字を抽出
-
EXCELで 一桁の数値を二桁に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報