我有一张Excel工作表,其中包含日期列表
Thursday, May 30, 2013
Friday, May 31, 2013
Monday, June 3, 2013
Tuesday, June 4, 2013
Wednesday, June 5, 2013
Thursday, June 6, 2013
Friday, June 7, 2013
Tuesday, June 11, 2013
Wednesday, June 12, 2013
Thursday, June 13, 2013
Friday, June 14, 2013
Monday, June 17, 2013
Tuesday, June 18, 2013
我需要确定我是否错过了某个日期(仅限工作日)并插入了不同颜色的背景。
我试过这个
=IF(A2=A1+1,"","Missing next day")
但它告诉我星期六不见了(我对周末不感兴趣)。
在上面的示例数据中,星期一6月10日缺失
答案 0 :(得分:3)
答案 1 :(得分:2)
这是让你开始使用vba的东西,只要你愿意改变颜色:
Public Sub TestMe()
Dim myCell As Range
For Each myCell In Range("A1:A12")'One less, because it checks the cell on the next row
Select Case Weekday(myCell)
Case vbFriday
If Weekday(myCell.Offset(1)) <> vbMonday Then
myCell.Offset(0, 1) = "Missing!"
myCell.Interior.Color = vbYellow
End If
Case vbSaturday, vbSunday
myCell.Offset(0, 1) = "Not interested"
Case Else
If Weekday(myCell.Offset(1)) - 1 <> Weekday(myCell) Then
myCell.Offset(0, 1) = "Missing!"
myCell.Interior.Color = vbYellow
End If
End Select
Next myCell
End Sub
代码使用WeekDay
函数,该函数根据周返回数字。因此,如果日期是星期一,则在它被调用时返回2:Weekday("21.05.2018")
。因此,可以使用预定义的枚举vbMonday
,它返回2
。
在此基础上,我们会介绍Select Case
和If
运算符,负责处理3个案例 - vbFriday
,vbSaturday, vbSunday
以及其他4天。
如果Else
不符合预期,则内部变为vbYellow
。