Sub colorize()
Dim r As Long, val As Long, c As Long
r = 1
val = ActiveSheet.Cells(r, 1).Value
c = 4 '4 is green, 3 is red '
For r = 1 To ActiveSheet.Rows.Count
If IsEmpty(ActiveSheet.Cells(r, 1).Value) Then
Exit For
End If
If ActiveSheet.Cells(r, 1).Value <> val Then
If c = 3 Then
c = 4
Else
c = 3
End If
End If
ActiveSheet.Rows(r).Select
With Selection.Interior
.ColorIndex = c
.Pattern = xlSolid
End With
val = ActiveSheet.Cells(r, 1).Value
Next
End Sub
あなたはマクロが列Aのセルが値を変更するたびに起動するようにしたい場合は、関連するワークシートのモジュールに以下を追加します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then
Exit Sub
End If
colorize
End Sub
DIMを使用する場合は、変数ごとに変数タイプを指定する必要があります。あなたが持っている方法では、cを整数にしか設定しません。 rとvalの両方が型バリアントになります。これはVBAのVarTypeを使って確認できます。 –
@残念です、ありがとう、私はそれを忘れてしまいました。 – Vicky
Vicky、あなたが私に与えたトップコード(長いもの)を実行しようとすると、「ランタイムエラー '13':タイプが一致しません」Remnantが話していたことが原因ですか?もしそうなら、私はそれをどのように修正するのですか?また、私があなたに与えた2番目のコード(短いもの)を実行しようとしたとき、それは実行するオプションとして出てこない(代わりに私が記録した他のいくつかのマクロを表示します)。申し訳ありませんが、VBAコードなどが新しくなっています。 ..あなたの助けをありがとう(Remnant&Vicky)! – Jack