/ / Wenn der Bedingungsbereich nicht funktioniert - excel, vba, excel-vba

Wenn der Bedingungsbereich nicht funktioniert - excel, vba, excel-vba

Ich kann den folgenden Code nicht zum Laufen bringen, wennSie kopieren und fügen Werte in die Spalten A, C und D ein. Wenn ich zum Beispiel in Zeile 2 bin und Daten in die Zellen A2, C2 und D2 einfüge, erledigt der Code seine Aufgabe. Aber wenn ich Daten in Zeile 3, 4, 5 kopiere und einfüge, überprüft der Code den Zustand nicht mehr. Ich würde mich sehr freuen, wenn mir jemand helfen kann, dieses Problem zu beheben. Danke!

Sub LogicalPart(i As Long)

If (Cells(i, "C") + Cells(i, "D")) <> Cells(i, "A") Then
MsgBox "C" & i & " + D" & i & " must equal cell A" & i & " which is: " & Range("A" & i).Value
MsgBox ("Please insert again the data in cell C" & i & " or D " & i & "!")
Cells(i, "C").Interior.Color = RGB(255, 0, 0)
Cells(i, "D").Interior.Color = RGB(255, 0, 0)

Else
Range(Cells(i, "C"), Cells(i, "D")).Interior.Color = RGB(1000, 1000, 1000)
End If

End Sub



Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range("C1:d10"), Target) Is Nothing Then
LogicalPart Target.row
End If


End Sub

Antworten:

3 für die Antwort № 1

Sie müssen die Zeilen im Zielbereich durchlaufen:

Target.Row

Gibt nur die erste Zeile und nicht alle zurück:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim rngrow As Range
Set rng = Intersect(Range("C1:d10"), Target)
If Not rng Is Nothing Then
For Each rngrow In rng.Rows
LogicalPart rngrow.Row
Next rngrow
End If


End Sub