VBA Рассчитать разницу между двумя разами в диапазоне столбцов - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь вычислить разницу между каждой строкой A5 до A20 и B5 до B20 и изменить цвет на зеленый, если он равен 4 часам.Мне трудно настроить диапазон.В настоящее время я могу сделать только одну ячейку за раз.

Sub test()
    Dim Total As Double
    Dim Timein As Date
    Dim Timeout As Date
    Timein = CDate(Range("A7").Value)
    Timeout = CDate(Range("B7").Value)

    Total = 24 * ((Timeout - Timein))
    Debug.Print Total
    Debug.Print Format(Total, "#,##0_);(#,##0)")
    If Total = 4 Then
        Range("A7").Interior.Color = vbGreen
    End If

    Debug.Print "Number of hours = " & Total * 24
End Sub

Photo Example Here

1 Ответ

0 голосов
/ 04 декабря 2018

Почему вы даже используете VBA для этой задачи?В Excel есть встроенные команды и функциональность (условное форматирование) только для таких вещей.Использование VBA является излишним.

Sub test()

    Dim dteIn As Date
    Dim dteOut As Date
    Dim rng As Range, cll As Range

    Set rng = Range("A5:A20")

    For Each cll In rng
        dteIn = CDate(cll.Value)
        dteOut = CDate(cll.Offset(0, 1).Value)
        If CInt((dteOut - dteIn) * 24) = 4 Then
            cll.Interior.Color = vbGreen
        End If
    Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...