我有代码,我正在改变运行每日报告,显示有关员工的各种统计信息,包括他们的登录时间。
此代码在更改之前所执行的操作是通过包含登录时间的列循环的。如果时间大于8小时28分钟,则忽略它。如果列在0到8:28之间,它会促使我说“是”或“是”短时间"获得批准,并相应地突出显示。最后,如果员工当天不在那里,它会将整行显示为灰色。
由于我通常会让人们在星期五做更短的日子,所以我正在更新代码,以便我不必经常告诉代码标记每个人批准的时间很短。我想让代码问我报告是否是星期五。如果不是,则转移到旧的代码片段。如果是,则会提示我输入当天的工作小时数(假设每个人的工作时间相同)。然后继续询问短时间。
看来我的逻辑基本上是正确的,但是,对于代码的两个部分,突出显示现在都不起作用。在"旧代码"中,无论我是否将短时间标记为已批准,它仍然会突出显示红色(5263615)。在新的代码中,无论如何,它都会突出灰色(11711154)。我认为它只是缺失的东西,但我找不到它。
'Account for any OOO
Dim int1 As Integer, int2 As Integer, workHours As Variant, scheduledOff As Range
Dim dayPrompt As String, stPrompt As String
dayPrompt = "Is this report for a Friday?"
int1 = MsgBox(dayPrompt, vbYesNo)
If int1 = vbYes Then
workHours = InputBox("Enter the number of working hours for the day")
For Each scheduledOff In Range("H2:H8")
If scheduledOff.Value > 0 And scheduledOff.Value < (workHours) Then
Cells(scheduledOff.Row, 1).Resize(, 1).Interior.Color = 13382655
stPrompt = "Was the highlighted analyst scheduled to be short time?"
int2 = MsgBox(stPrompt, vbYesNo)
If int1 = vbYes Then
scheduledOff.FormatConditions.Delete
scheduledOff.Interior.Color = 11711154
Else
scheduledOff.FormatConditions.Delete
scheduledOff.Interior.Color = 5263615
End If
Cells(scheduledOff.Row, 1).Resize(, 1).Interior.Color = 16777215
ElseIf scheduledOff.Value = 0 Then
Cells(scheduledOff.Row, 1).Resize(, 20).FormatConditions.Delete
Cells(scheduledOff.Row, 1).Resize(, 20).Interior.Color = 11711154
End If
Next scheduledOff
ElseIf int1 = vbNo Then
For Each scheduledOff In Range("H2:H8")
If scheduledOff.Value > 0 And scheduledOff.Value < TimeValue("8:28:00") Then
Cells(scheduledOff.Row, 1).Resize(, 1).Interior.Color = 13382655
stPrompt = "Was the highlighted analyst scheduled to be short time?"
int2 = MsgBox(stPrompt, vbYesNo)
If int1 = vbYes Then
scheduledOff.FormatConditions.Delete
scheduledOff.Interior.Color = 11711154
Else
scheduledOff.FormatConditions.Delete
scheduledOff.Interior.Color = 5263615
End If
Cells(scheduledOff.Row, 1).Resize(, 1).Interior.Color = 16777215
ElseIf scheduledOff.Value = 0 Then
Cells(scheduledOff.Row, 1).Resize(, 20).FormatConditions.Delete
Cells(scheduledOff.Row, 1).Resize(, 20).Interior.Color = 11711154
End If
Next scheduledOff
End If