【问题标题】:Show specific value in each row of an Excel range depending on time根据时间在 Excel 范围的每一行中显示特定值
【发布时间】:2022-11-28 13:10:51
【问题描述】:

我想输入一个基于时间的特定值(A、B 或 C)。

  • 当时间在 14 - 22 之间时
  • B 当时间在早上 5 点到 14 点之间
  • C 当时间在 22 - 5 am 之间时。

我有这样的数据:18-08-2022 10:28:29

我坚持以下几点:

If Time => TimeValue("22:00:01") And Time <= TimeValue("05:00:00 AM") Then
    wksCurSheet.Range("G", Target.Row).Value = "C"
    If Time => TimeValue("05:00:01 AM") And Time <= TimeValue("14:00:00") Then
        wksCurSheet.Range("G" & Target.Row).Value = "B"
        If Time => TimeValue("14:00:01") And Time <= TimeValue("22:00:00") Then
            wksCurSheet.Range("G" & Target.Row).Value = "A"
        End If
    End If
End If

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    编辑: 终于测试了...

    你会在这里使用ElseIf

    Private Sub Worksheet_Change(ByVal Target As Range)
        
        If Target.CountLarge > 1 Then Exit Sub
        If Target.Column = 7 Then Exit Sub
        
        If Time > TimeValue("05:00:00 AM") And Time <= TimeValue("14:00:00") Then
            Me.Range("G" & Target.Row).Value = "B"
        ElseIf Time > TimeValue("14:00:00") And Time <= TimeValue("22:00:00") Then
            Me.Range("G" & Target.Row).Value = "A"
        Else
            Me.Range("G" & Target.Row).Value = "C" 'any other time
        End If
        
    End Sub
    

    【讨论】:

    • 谢谢你的回答,但我在运行宏时继续出错
    • “出现错误”并不是对运行代码时发生的事情的非常有用的描述。你得到了什么错误,在哪里?如果您编辑问题以添加其余代码,那将会很有帮助。 stackoverflow.com/posts/73422848/edit
    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多