макрос, который считает время вместе - PullRequest
0 голосов
/ 24 октября 2019

У меня есть макрос, который подсчитывает вместе время, которое было использовано для задачи, и показывает, сколько задач было выполнено более чем за 24 часа, но он не учитывает выходные дни. У кого-нибудь есть решение?

Sub FinalizedAt_Hour()
    Dim a(), hrs(), k
    Dim i As Long
    Dim hr As Integer
    Dim d As Object, lst As Object

    Application.ScreenUpdating = False
    Set d = CreateObject("Scripting.Dictionary")
    Set lst = CreateObject("System.Collections.ArrayList")
    With Sheets("Data")
        .[P2].Resize(24, 2).ClearContents
        With .[E1].CurrentRegion.Columns(2)
            a = .Resize(.Rows.Count, 4).Value
         End With
        For i = 2 To UBound(a)
            hr = Application.Text(a(i, 3) + a(i, 4) - (a(i, 1) + a(i, 2)), "[h]")
            If hr >= 24 Then hr = 24
            If d.exists(hr) Then
                d.Item(hr) = d.Item(hr) + 1
            Else
                lst.Add hr
                d(hr) = 1
            End If
        Next
        lst.Sort
        ReDim hrs(0 To d.Count, 1 To 2)
        i = 0
        For Each k In lst.toarray
            hrs(i, 1) = IIf(k < 24, k, ">=24")
            hrs(i, 2) = d.Item(k)
            i = i + 1
        Next
        .[P2].Resize(i, UBound(hrs, 2)) = hrs
    End With
    Set d = Nothing
    Set lst = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...