照合システムを作ろうとネットを閲覧していたら次のコードが見つかりました。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rr As Range
If Not Intersect(Target, Range("C1:D10")) Is Nothing Then
For Each rr In Intersect(Target.EntireRow, Range("C:C"))
If Not IsEmpty(rr) And Not IsEmpty(rr.Offset(, 1)) Then
Application.EnableEvents = False
If rr.Value <> rr.Offset(, 1).Value Then
Beep
rr.Offset(, 2).Value = "NG"
Else
rr.Offset(, 2).Value = "OK"
End If
Application.EnableEvents = True
End If
Next
End If
End Sub
このコードでいくと、C列とD列が同じであればE列にOK、間違っていればNGなのですが、C1とC2が同じであればE1にOK、間違っていればNG。次にC3とC4が同じであればE3にOK、間違っていればNG。…というふうにしたいのですが、どうすれば良いのでしょうか?
No.1ベストアンサー
- 回答日時:
こんにちは。
少し変更してみました。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rr As Range
Application.EnableEvents = False
If Not Intersect(Target, Range("C1:C20")) Is Nothing Then
For Each rr In Intersect(Target.EntireRow, Range("C:C"))
If (rr.Row Mod 2) <> 0 Then
If Not IsEmpty(rr) Then
If rr.Value <> rr.Offset(1, 0).Value Then
rr.Offset(, 2).Value = "NG"
Else
rr.Offset(, 2).Value = "OK"
End If
End If
Else
If Not IsEmpty(rr.Offset(-1, 0)) Then
If rr.Value <> rr.Offset(-1, 0).Value Then
rr.Offset(-1, 2).Value = "NG"
Else
rr.Offset(-1, 2).Value = "OK"
End If
End If
End If
Next
End If
Application.EnableEvents = True
End Sub
早速の回答ありがとうございます。
思った通りに動きました。有難うございます。
また判らないことがあれば質問させていただきますので、その時はよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
VBAを使って検索したセルをコピ...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
エクセルVBA シートモジュール...
-
VBAのFind関数で結合セルを検索...
-
B列の最終行までA列をオート...
-
VBAで、特定の文字より後を削除...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
VBA 値と一致した行の一部の列...
-
vbaでシートより100より大きい...
-
VBAで10行おきにセルの下に罫線...
-
VBA UserFormからの転記で
-
Changeイベントでの複数セルの...
-
セルに値が入っていた時の処理
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
C# dataGridViewの値だけクリア
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAのコードを教えてください
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
エクセルvbaについて
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
VBA UserFormからの転記で
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
VBマクロ 色の付いたセルを...
-
VBAで指定範囲内の空白セルを左...
おすすめ情報