Advertisement
Guest User

tally

a guest
Jan 4th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Function StripChar(Txt As String) As String
  2. With CreateObject("VBScript.RegExp")
  3. .Global = True
  4. .Pattern = "\D"
  5. StripChar = .Replace(Txt, "")
  6. End With
  7. End Function
  8.  
  9. Function ArrayLen(arr As Variant) As Integer
  10.     ArrayLen = UBound(arr) - LBound(arr) + 1
  11. End Function
  12.  
  13. Function HrMinToHr(Txt As String) As Double
  14.     TArray = Split(Txt, ":")
  15.     If ArrayLen(TArray) = 1 Then
  16.         HrMinToHr = CDbl(Txt)
  17.     Else
  18.         HrMinToHr = CDbl(Txt(0)) + CDbl(Txt(1)) / 60
  19.     End If
  20. End Function
  21.  
  22. Function TimeDiff(Txt As String) As String
  23.     Dim TArray() As String
  24.     TArray = Split(Txt, "-")
  25.     Dim hr1 As Double = HrMinToHr(TArray(0))
  26.     Dim hr2 As Double = HrMinToHr(TArray(1))
  27.     Dim diff As Double
  28.     If hr2 < hr1 Then
  29.         diff = 12 - hr1 + hr2
  30.     Else
  31.         diff = hr2 - hr1
  32.     End If
  33.     TimeDiff = diff
  34. End Function
  35.  
  36. Function SumTimes() As Double
  37.     Dim totalHours as Double = 0
  38.     Dim ValArray as Variant
  39.     ValArray = Range("A1:IV" & Rows.Count).Value
  40.     For Each element In ValArray
  41.             If InStr(element, "a-") > 0 Or InStr(element, "p-") > 0 Or InStr(element, ":") > 0 Then
  42.             totalHours += TimeDiff(element)
  43.         End If
  44.         Next element
  45.     SumTimes = totalHours
  46. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement