如果一个日期在另一个日期之后突出显示单元格?
Highlighting cell if one date is after another?
我有几列数据,我试图突出显示第二个日期出现在第一个日期之前的那些实例,以显示数据中是否有任何错误。
ID Start Date End Date
1 01/01/15 01/15/15
2 01/06/15 01/02/15
3 01/06/15 01/03/15
4 01/11/15 01/13/15
我希望能够突出显示结束日期早于开始日期的单元格。我被定向到的所有日期条件格式链接都是基于当前日期或一个特定日期,我有点迷路了。
谢谢!
日期可以像数字一样用<来比较。一种可能性是研究如何进行条件格式化,突出显示每行中的最小条目。如果任何行突出显示了第二个而不是第一个日期列,那么它就是一个有问题的行。
也可以直接做。当预定义条件规则 none 起作用时,关键是要使用 Conditional Formatting/New Rule/Use a formula to determine which cells to format
。如果您显示的数据从 A1 开始(因此 01/15/15 在 C2 中),请转到 C2 并创建由公式给出的条件格式规则
= C2 < B2
然后 -- 将格式粘贴到 C 列的其余日期下方
如果您没有编码经验,这会有点复杂。解决这个问题最好的办法就是自己写一个VBA脚本。因此,我将逐步完成使用完整代码的过程。
1) 打开您的 Excel 文件,然后转到“开发人员”选项卡。
(如果您没有看到它,请转到“文件”->“选项”,单击“自定义功能区”,然后在主选项卡中添加“开发人员”。
2) 单击“开发人员”选项卡下的“Visual Basic”按钮。
3a) 将以下代码粘贴到:
Sub ColorCellsWithIncorrectEndDate()
Dim Rows
Rows = ActiveSheet.UsedRange.Rows.Count
For i = 2 To Rows
If Cells(i, 2).Value > Cells(i, 3).Value Then
Cells(i, 3).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next
End Sub
3b) 如果您的 excel sheet 与上面列出的格式完全相同,则上面的代码有效。
--如果单元格不在同一列中,那么您将调整 "Cells(i,#)" 中的数字,使数字与列相对应。 (即 A=1、B=2、C=3...)。现在它正在检查 B 列(开始日期)是否大于 C 列(结束日期)。如果为真,则为单元格 C 着色。
--如果单元格不在正确的行中,则调整显示 "For i = # To Rows" 的行,数字直接对应于行号。
--如果您想要不同的颜色,请访问此网站:http://www.w3schools.com/tags/ref_colorpicker.asp,并将“65535”替换为任何一个有效数字。
4) 保存并退出 visual basic
5) Return 到您的 Excel Sheet 并单击 Developer->Macros。 (会出现一个对话框)
6) Select "ColorCellsWithIncorrectEndDate" 对话框,点击运行。
7) 所有超过开始日期的结束日期都将以黄色(或您选择的任何颜色)突出显示
希望对您有所帮助!
-BlindingFog
我有几列数据,我试图突出显示第二个日期出现在第一个日期之前的那些实例,以显示数据中是否有任何错误。
ID Start Date End Date
1 01/01/15 01/15/15
2 01/06/15 01/02/15
3 01/06/15 01/03/15
4 01/11/15 01/13/15
我希望能够突出显示结束日期早于开始日期的单元格。我被定向到的所有日期条件格式链接都是基于当前日期或一个特定日期,我有点迷路了。
谢谢!
日期可以像数字一样用<来比较。一种可能性是研究如何进行条件格式化,突出显示每行中的最小条目。如果任何行突出显示了第二个而不是第一个日期列,那么它就是一个有问题的行。
也可以直接做。当预定义条件规则 none 起作用时,关键是要使用 Conditional Formatting/New Rule/Use a formula to determine which cells to format
。如果您显示的数据从 A1 开始(因此 01/15/15 在 C2 中),请转到 C2 并创建由公式给出的条件格式规则
= C2 < B2
然后 -- 将格式粘贴到 C 列的其余日期下方
如果您没有编码经验,这会有点复杂。解决这个问题最好的办法就是自己写一个VBA脚本。因此,我将逐步完成使用完整代码的过程。
1) 打开您的 Excel 文件,然后转到“开发人员”选项卡。
(如果您没有看到它,请转到“文件”->“选项”,单击“自定义功能区”,然后在主选项卡中添加“开发人员”。
2) 单击“开发人员”选项卡下的“Visual Basic”按钮。
3a) 将以下代码粘贴到:
Sub ColorCellsWithIncorrectEndDate()
Dim Rows
Rows = ActiveSheet.UsedRange.Rows.Count
For i = 2 To Rows
If Cells(i, 2).Value > Cells(i, 3).Value Then
Cells(i, 3).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next
End Sub
3b) 如果您的 excel sheet 与上面列出的格式完全相同,则上面的代码有效。
--如果单元格不在同一列中,那么您将调整 "Cells(i,#)" 中的数字,使数字与列相对应。 (即 A=1、B=2、C=3...)。现在它正在检查 B 列(开始日期)是否大于 C 列(结束日期)。如果为真,则为单元格 C 着色。
--如果单元格不在正确的行中,则调整显示 "For i = # To Rows" 的行,数字直接对应于行号。
--如果您想要不同的颜色,请访问此网站:http://www.w3schools.com/tags/ref_colorpicker.asp,并将“65535”替换为任何一个有效数字。
4) 保存并退出 visual basic
5) Return 到您的 Excel Sheet 并单击 Developer->Macros。 (会出现一个对话框)
6) Select "ColorCellsWithIncorrectEndDate" 对话框,点击运行。
7) 所有超过开始日期的结束日期都将以黄色(或您选择的任何颜色)突出显示
希望对您有所帮助!
-BlindingFog