
シート1名称:商品マスタ
A列に管理番号、B列に商品名
管理番号、商品名にかぶりなし
シート2名称:販売履歴
A列に年月日(シリアル値)、B列に管理番号、C列に商品型式、D列に商品名、E列に価格
管理番号、商品名にかぶりあり
シート2は約2年間分の販売履歴のデータがあります。同じ管理番号で年月日によって価格が違うため最新の価格のみをシート1のC列に転記したいです。いろいろな方がネットでやり方を掲載されているので自分なりに作成し、転記はできるのですが、シート2のA列の年月日から最新の価格を見つけるというコードが作れません。ここからどのように修正知ればうまく作動するかお教え願えますでしょうか。
よろしくお願いいたします。
Sub test()
Dim WS1, WS2
Dim LastR1, R1, LastR2, R2
Dim CodeNo, Kakaku
Application.ScreenUpdating = False
Set WS1 = Worksheets("sheet1")
Set WS2 = Worksheets("sheet2")
LastR1 = WS1.Cells(Rows.Count, "A").End(xlUp).Row
LastR2 = WS2.Cells(Rows.Count, "B").End(xlUp).Row
For R1 = StartR1 To LastR1
CodeNo = WS1.Cells(R1, "A")
Kakaku = -1
For R2 = StartR2 To LastR2
If WS2.Cells(R2, "B") = CodeNo Then
Kakaku = WS2.Cells(R2, "E")
Exit For
End If
Next R2
If Kakaku = -1 Then
WS1.Cells(R1, "C") = "無"
Else
WS1.Cells(R1, "C") = Kakaku
End If
Next R1
Application.ScreenUpdating = True
If MsgBox("マクロの実行を終了しますか?", vbYesNo) = vbYes Then
MsgBox "終了します"
End
End If
MsgBox "マクロを最後まで実行しました"
End Sub
No.3
- 回答日時:
No.2です。
【VBA】For-Next文の繰り返し処理を逆順で実行する方法!
https://www.higashisalary.com/entry/for-next-rev …
ループを下から調べていって最初に見つかった条件を満たすものが目的の物ではないのかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
DataGridViewに空白がある場合...
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
【Excel VBA】 B列に特定の文字...
-
VBAでのリスト不一致抽出について
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
EXCEL VBA 元データが略称、参...
-
【VBA】2つのシートの値を比較...
-
VBAを使って検索したセルをコピ...
-
エクセルVBA intersect colu...
-
期限を超えた日付に警告のメッ...
-
複数の列の値を結合して別の列...
-
VBAで最新のデータを別シートに...
-
セルに入力されたら日付が出る...
-
重複データをまとめて合計を合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Worksheets メソッドは失敗しま...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
IIF関数の使い方
-
Changeイベントでの複数セルの...
-
【VBA】2つのシートの値を比較...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
DataGridViewに空白がある場合...
-
VBAを使って検索したセルをコピ...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
VBAでのリスト不一致抽出について
-
エクセル 2つの表の並べ替え
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBA 列が空白なら別のマクロへ...
おすすめ情報