基本上,我正在尝试创建此excel宏表,以便当我单击任何单元格(在表区域内)并输入一些值时,如果它的总和等于(例如下图所示)的键值,该行和列,它会更改单元格颜色或保留它。
Sub Add_Nos()
Dim r As Integer
Dim c As Integer
Dim active As Integer
r = Worksheets("Sheet1").Cells(ActiveCell.Row, "A").Value
c = Wor
Worksheets("Sheet1").Cells(1, ActiveCell.Column).Value
active = ActiveCell.Value
If active = r + c Then
ActiveCell.Interior.ColorIndex = 4
Else
ActiveCell.Interior.ColorIndex = 0
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
Call Add_Nos
End If
End Sub
我希望当我在一个单元格中输入某个值然后单击其他某个单元格时,它将验证输入的值并相应地使颜色变色。但是,输入一些值后,当我单击离开然后再次单击返回时,只有它会验证并显示一些颜色。...
=>此外,我想锁定关键单元格的值并更改其颜色以使它们在视觉上保持差异。
答案 0 :(得分:0)
我认为下面的代码就是您要实现的目标:
Option Explicit
Sub Add_Nos(myRow As Long, myCol As Long, ByRef myTarget As Range)
Dim r As Long, c As Long
With Worksheets("Sheet1")
r = .Cells(myRow, "A").Value
c = .Cells(1, myCol).Value
End With
If myTarget.Value = r + c Then
myTarget.Interior.ColorIndex = 4
Else
myTarget.Interior.ColorIndex = 0
End If
End Sub
'===============================================================
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
Add_Nos Target.Row, Target.Column, Target
End If
End Sub
答案 1 :(得分:0)
如imgur comments所述,请进行条件格式设置!
如果单元格的值不等于行和列的总和,则此方程使单元格为红色。您可以将<>
替换为=
,然后将格式更改为绿色,现在,情况就完全相反了(具有良好值的单元格以绿色突出显示)。不要忘记您的范围内的$
(或缺少它),因为这才使它高效。