Время работы в VBA - PullRequest
       20

Время работы в VBA

0 голосов
/ 19 января 2012

Вот что я хочу сделать, и я понял, что это не работает.

If Time > 23 And Time < 7 Then
   ws.Cells(Target.Row, 12).Value = 3
ElseIf Time > 7 And Time < 15 Then
   ws.Cells(Target.Row, 12).Value = 1
Else
   ws.Cells(Target.Row, 12).Value = 2
End If

Что я хочу сделать с этим материалом ... если фактическое время больше 11 вечера, но меньше 7я ... он пишет 3 в ячейке ... и так далее ... Проблема в том, что я понял, что это время компримирования> 23 или время <7 не работает ... как я могу сравнить функцию времени сфактический час?Спасибо! </p>

Ответы [ 3 ]

3 голосов
/ 19 января 2012

Как то так. Я использовал выборочные переменные вместо Target и знал, какой лист ws был

Sub Timing()
    Dim ws As Worksheet
    Dim dbTime As Double
    Set ws = Sheets(1)
    dbTime = Time
    If dbTime > 23 / 24 Or dbTime < 7 / 24 Then
        ws.Cells(1, 12).Value = 3
    ElseIf dbTime >= 7 / 24 And dbTime < 15 / 24 Then
        ws.Cells(1, 12).Value = 1
    Else
        ws.Cells(1, 12).Value = 2
        End If
End Sub
3 голосов
/ 19 января 2012

Дайте этому попытку

If Hour(now) > 23 or Hour(now) <= 7 Then
   ws.Cells(Target.Row, 12).Value = 3
ElseIf Hour(now) > 7 And Hour(now) < 15 Then
   ws.Cells(Target.Row, 12).Value = 1
Else
   ws.Cells(Target.Row, 12).Value = 2
End If
1 голос
/ 19 января 2012

Вам нужно извлечь время из времени, что вы можете сделать с помощью функции DatePart, например,

Dim CurrentHour
CurrentHour = DatePart("h", Time)

If CurrentHour > 23 Or CurrentHour < 7 Then
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...