合并两个 Worksheet_Change 子
Combine two Worksheet_Change Subs
我需要对工作簿中的一个 sheet 执行两项操作。两者都基于更改事件,但不知道如何使它们同时工作。以下是我的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Target.EntireRow
If Target.row = 1 Then Exit Sub ' Don't change header color
If r.Cells(1, "AD").Value <> "" Then
r.Font.Color = RGB(0, 176, 80)
Else
r.Font.ColorIndex = 1
End If
End Sub
还有这个:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Target.EntireRow
If Target.row = 1 Then Exit Sub ' Don't change header color
If r.Cells(1, "E").Value = "6" Then
r.Font.Color = RGB(255, 0, 0)
Else
r.Font.ColorIndex = 1
End If
End Sub
为了帮助确定最佳行动方案,最终结果必须是这样的:
对于在单元格 AD 中输入了日期的任何行,整行的文本颜色应更改为绿色。但是,如果任何行的单元格 E 包含 6(这是一个格式化为文本的数字),则该行中的文本应为红色。
我确定我想多了。感谢所有建议。
在第一个 If
语句中使用 And
,然后添加 ElseIf
语句。
如果日期和 6 都存在,或者只有一个没有另一个,我不确定你要优先考虑什么,但你可以轻松调整下面的 If Then ElseIf
块来满足你的需求.
If r.Cells(1, "AD").Value <> "" And r.cells(1,"E").Value = "6" Then
r.Font.Color = RGB(255, 0, 0)
ElseIf r.Cells(1,"AD").Value <> "" Then
r.Font.Color = RGB(0, 176, 80)
Else
r.Font.ColorIndex = 1
End If
我需要对工作簿中的一个 sheet 执行两项操作。两者都基于更改事件,但不知道如何使它们同时工作。以下是我的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Target.EntireRow
If Target.row = 1 Then Exit Sub ' Don't change header color
If r.Cells(1, "AD").Value <> "" Then
r.Font.Color = RGB(0, 176, 80)
Else
r.Font.ColorIndex = 1
End If
End Sub
还有这个:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Target.EntireRow
If Target.row = 1 Then Exit Sub ' Don't change header color
If r.Cells(1, "E").Value = "6" Then
r.Font.Color = RGB(255, 0, 0)
Else
r.Font.ColorIndex = 1
End If
End Sub
为了帮助确定最佳行动方案,最终结果必须是这样的:
对于在单元格 AD 中输入了日期的任何行,整行的文本颜色应更改为绿色。但是,如果任何行的单元格 E 包含 6(这是一个格式化为文本的数字),则该行中的文本应为红色。
我确定我想多了。感谢所有建议。
在第一个 If
语句中使用 And
,然后添加 ElseIf
语句。
如果日期和 6 都存在,或者只有一个没有另一个,我不确定你要优先考虑什么,但你可以轻松调整下面的 If Then ElseIf
块来满足你的需求.
If r.Cells(1, "AD").Value <> "" And r.cells(1,"E").Value = "6" Then
r.Font.Color = RGB(255, 0, 0)
ElseIf r.Cells(1,"AD").Value <> "" Then
r.Font.Color = RGB(0, 176, 80)
Else
r.Font.ColorIndex = 1
End If