Excel の行が異なる文字に変更されるときに、VBA で msgbox を使用してプロンプトを表示するにはどうすればよいですか。
たとえば、行 1 に AAB があり、行 2 に BBA がある場合、行 1 の後にプロンプト ボックスが必要です。
答え1
この小さなマクロを試してください。列に設定されていますC
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
例えば:
編集#1:
このバージョンのコードは列の変更を検出しますCそして、それらの間に「スペーサー」行を挿入します。
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
前に:
以降: