根据时间范围

时间:2016-07-15 16:46:43

标签: excel vba macros

我是新来的,目前我有一个使用VB在Excel中构建宏的任务。这是我为当前单元格设置的逻辑:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then

Range("D" & Target.Row) = Date

Range("E" & Target.Row) = Format(Now, "hh:mm:ss")

End If

End Sub

每当有人在B行的单元格内输入信息时,它会在输入时自动获取日期和小时(日志类型)。我需要的是取决于我在单元格E上获得的时间范围,我需要根据从单元格E到另一行的时间范围来计算信息的移位。

  • 轮班1 =早上6:30 - 下午2:30
  • 班次2 =下午2:30 - 晚上11:30
  • 班次3 = 11:30 pm - 6:30

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我刚刚得到了答案,它将3个if语句加起来如下:

If Time > TimeValue("6:30:00") And Time <= TimeValue("14:30:00") Then Range("F" & Target.Row) = "1st Shift"


If Time > TimeValue("14:30:01") And Time <= TimeValue("23:30:00") Then Range("F" & Target.Row) = "2nd Shift"


If Time > TimeValue("23:30:01") And Time <= TimeValue("6:30:00") Then Range("F" & Target.Row) = "Overtime"