Sub time_wordparse()
Dim rng As Range, _
rngUsed As Range
Set rngUsed = Application.InputBox("Select range", , , , , , , 8)
Dim sht As Worksheet
Set sht = rngUsed.Parent
Dim lng_h() As Long, _
lng_m() As Long, _
lng_s() As Long
Dim rowcnt As Long
rowcnt = rngUsed.Rows.count
Dim i As Long, _
j As Long, _
total As Long
Dim str As String
Dim strTemp() As String
ReDim lng_h(1 To rowcnt)
ReDim lng_m(1 To rowcnt)
ReDim lng_s(1 To rowcnt)
On Error Resume Next
For j = 1 To rowcnt
strTemp = Split(rngUsed.Cells(j, 1).value, " ")
For i = LBound(strTemp) To UBound(strTemp)
Select Case Right(strTemp(i), 1)
Case "h"
lng_h(j) = Left(strTemp(i), Len(strTemp(i)) - 1)
Case "m"
lng_m(j) = Left(strTemp(i), Len(strTemp(i)) - 1)
Case "s"
lng_s(j) = Left(strTemp(i), Len(strTemp(i)) - 1)
End Select
Next i
total = total + (lng_h(j) * 3600 + lng_m(j) * 60 + lng_s(j))
Debug.Print j & " | " & lng_h(j) & " | " & lng_m(j) & " | " & lng_s(j)
Next j
On Error GoTo 0
sht.Range("E1:H1").value = Array("hours", "minutes", "seconds", "total time")
sht.Range("E2:E" & UBound(lng_h) + 1).value = WorksheetFunction.Transpose(lng_h)
sht.Range("F2:F" & UBound(lng_m) + 1).value = WorksheetFunction.Transpose(lng_m)
sht.Range("G2:G" & UBound(lng_s) + 1).value = WorksheetFunction.Transpose(lng_s)
sht.Range("H2:H2").value = time_convert(total)
End Sub