【问题标题】:Set an If statement on a cell depending on the time frame根据时间范围在单元格上设置 If 语句
【发布时间】:2016-07-15 16:46:43
【问题描述】:

我是新来的,目前我的任务是使用 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 - 早上 6:30

有什么建议吗?

【问题讨论】:

  • 使用 if 语句,如果 e 值大于 x 且小于 x 则 value = x ?
  • 我刚刚得到答案

标签: excel vba macros


【解决方案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"

【讨论】:

  • 干得好!很高兴你到了那里,你可以从怀疑中得到一些满足:)。您还可以考虑将 3 个 IF 语句合二为一,如下所示: If x > x And x x And x msdn.microsoft.com/en-us/library/752y8abs.aspx
  • 嘿,史蒂文,谢谢。是的,会尝试只设置一个语句,不要担心它发生的语法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
相关资源
最近更新 更多