vba编程:将B列相邻行的日期进行比较,仅比较日期部分,如果相同(忽略时分秒时间)的行绿色高亮,遇到不同黄色高亮,第一天为黄色,第二天为绿色,第三天又为黄色,如此循环
Sub HighlightDuplicateDates()
Dim lastRow As Long '获取最后一行
Dim i As Long '循环变量
Dim currentDate As Date '当前日期
Dim previousDate As Date '上一个日期
Dim previousColor As Long '上一个颜色
lastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row '获取最后一行
' 初始化previousDate为B列中的第一个日期
previousDate = Cells(2, "B").Value
previousColor = RGB(255, 255, 0) '初始化上一个颜色为黄色
For i = 3 To lastRow '从第三行开始循环
currentDate = Cells(i, "B").Value '获取当前日期
' 仅比较日期的日期部分
If Int(currentDate) = Int(previousDate) Then
' 如果日期与上一行相同,则将当前行突出显示为上一个颜色
Rows(i).Interior.Color = previousColor
Else
' 如果日期与上一行不同,则将当前行突出显示为上一个颜色的相反颜色
If previousColor = RGB(255, 255, 0) Then
Rows(i).Interior.Color = RGB(0, 255, 0) '绿色
Else
Rows(i).Interior.Color = RGB(255, 255, 0) '黄色
End If
previousColor = Rows(i).Interior.Color '更新上一个颜色为当前行的颜色
End If
' 更新previousDate以进行下一次比较
previousDate = currentDate
Next i
End Sub