Wie verwende ich eine Nachrichtenbox in VBA, wenn sich Excel-Zeilen in andere Buchstaben ändern?
Wenn ich beispielsweise AAB in Zeile 1 und BBA in Zeile 2 habe, brauche ich ein Eingabeaufforderungsfeld nach Zeile 1.
Antwort1
Probieren Sie dieses kleine Makro aus, es ist für die SpalteC
Sub DataCheck()
Dim MyCol As String, rCheck As Range, r As Range
MyCol = "C"
Set rCheck = Intersect(ActiveSheet.UsedRange, Range(MyCol & ":" & MyCol))
For Each r In rCheck
If r.Row = 1 Then
Else
If r.Text <> r.Offset(-1, 0).Text Then
r.Select
MsgBox "Data changed in row #" & r.Row
End If
End If
Next r
End Sub
Zum Beispiel:
BEARBEITEN #1:
Diese Version des Codes erkennt Änderungen in der SpalteCund fügen Sie dazwischen eine „Abstandszeile“ ein:
Sub DataCheck2()
Dim MyCol As String, rCheck As Range, r As Range
Dim rInsert As Range
MyCol = "C"
Set rCheck = Intersect(ActiveSheet.UsedRange, Range(MyCol & ":" & MyCol))
Set rInsert = Nothing
For Each r In rCheck
If r.Row = 1 Then
Else
If r.Text <> r.Offset(-1, 0).Text Then
If rInsert Is Nothing Then
Set rInsert = r
Else
Set rInsert = Union(rInsert, r)
End If
End If
End If
Next r
If rInsert Is Nothing Then
Else
rInsert.EntireRow.Insert
End If
End Sub
Vor:
und danach: