逐行条件格式
Conditional Formatting row wise
如果连续两个单元格满足条件,我要格式化一个单元格:
当单元格 F4 等于其中一名工人和最大值时。 相同 工人的工作时间 > 10 单元格 F4 应该是红色的。
我试过了,但没有让规则生效。
这样做:
- 如果规则适用,请标记您想要着色的所有单元格
- 按照查找左上角的方式制定规则 cell/row
看这个例子:
所以在这种情况下,我希望第一行的规则是:如果单元格 F4 > 10,则颜色为红色。
结果:
在CF中使用公式:
=SUM(($L:$L=$F)*($M:$M>10))
并应用于范围 F4
尝试工作表更改事件。你可以轻松添加边框、字体等
在带有数据粘贴的 vbe 工作表中
Dim int_fcol, int_frow, int_lcol, int_lrow As Integer
Dim rng_WorkRange As Range
Private Sub Worksheet_Activate()
int_fcol = ActiveSheet.UsedRange.Column
int_frow = ActiveSheet.UsedRange.Row
int_lcol = ActiveSheet.Cells(int_frow, Columns.Count).End(xlToLeft).Column
int_lrow = ActiveSheet.Cells(Rows.Count, int_fcol).End(xlUp).Row
'MsgBox "first columns is: " & int_fcol & vbCrLf & _
"first row is: " & int_frow & vbCrLf & _
"last column is: " & int_lcol & vbCrLf & _
"last row is: " & int_lrow
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim int_ColumnWithHours As Integer
' column with hours
int_ColumnWithHours = int_fcol + 1
If Target.Column = int_ColumnWithHours Then
' setting table range
Set rng_WorkRange = ActiveSheet.Range(ActiveSheet.Cells(Target.Row, int_fcol), ActiveSheet.Cells(Target.Row, int_lcol))
If Target.Value > 10 Then ' check does more than 10 hour
' if true colour red
rng_WorkRange.Interior.ColorIndex = 3
Else ' If Target.Value > 10
' if false white
rng_WorkRange.Interior.ColorIndex = 0
End If ' If Target.Value > 10
End If ' If Target.Column = int_fcol + 1
End Sub
如果连续两个单元格满足条件,我要格式化一个单元格:
当单元格 F4 等于其中一名工人和最大值时。 相同 工人的工作时间 > 10 单元格 F4 应该是红色的。
我试过了,但没有让规则生效。
这样做:
- 如果规则适用,请标记您想要着色的所有单元格
- 按照查找左上角的方式制定规则 cell/row
看这个例子:
所以在这种情况下,我希望第一行的规则是:如果单元格 F4 > 10,则颜色为红色。
结果:
在CF中使用公式:
=SUM(($L:$L=$F)*($M:$M>10))
并应用于范围 F4
尝试工作表更改事件。你可以轻松添加边框、字体等 在带有数据粘贴的 vbe 工作表中
Dim int_fcol, int_frow, int_lcol, int_lrow As Integer
Dim rng_WorkRange As Range
Private Sub Worksheet_Activate()
int_fcol = ActiveSheet.UsedRange.Column
int_frow = ActiveSheet.UsedRange.Row
int_lcol = ActiveSheet.Cells(int_frow, Columns.Count).End(xlToLeft).Column
int_lrow = ActiveSheet.Cells(Rows.Count, int_fcol).End(xlUp).Row
'MsgBox "first columns is: " & int_fcol & vbCrLf & _
"first row is: " & int_frow & vbCrLf & _
"last column is: " & int_lcol & vbCrLf & _
"last row is: " & int_lrow
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim int_ColumnWithHours As Integer
' column with hours
int_ColumnWithHours = int_fcol + 1
If Target.Column = int_ColumnWithHours Then
' setting table range
Set rng_WorkRange = ActiveSheet.Range(ActiveSheet.Cells(Target.Row, int_fcol), ActiveSheet.Cells(Target.Row, int_lcol))
If Target.Value > 10 Then ' check does more than 10 hour
' if true colour red
rng_WorkRange.Interior.ColorIndex = 3
Else ' If Target.Value > 10
' if false white
rng_WorkRange.Interior.ColorIndex = 0
End If ' If Target.Value > 10
End If ' If Target.Column = int_fcol + 1
End Sub