Я получаю CSV-файл ежедневно, в котором я фильтрую поиск определенных данных. Этот файл требует большого количества усилий вручную в Excel для фильтрации и форматирования данных. Я разрабатываю VBScript, чтобы посмотреть на каждую строку, чтобы возвращать только данные, необходимые для уменьшения ручного усилия.Формат истекшего значения времени строки
В файле CSV есть строка, «замеченная временем», которая форматируется странно. Данные, зависящие от времени, отличаются от линии к строке. Примером этих данных является следующее:
3hrs27min 35sec 35min 20sec 8min 38sec 1days1hrs25min 30sec 5days12hrs9min 48sec
Я использую этот код, чтобы удалить «дни», «HRS», «мин» и «сек» из данных и заменить их с " :».
strLastField0 = arrFields(9)
strLastField1 = Replace(strLastField0,"min ",":")
strLastField2 = Replace(strLastField1,"hrs",":")
strLastField3 = Replace(strLastField2,"days",":")
strLastField4 = Replace(strLastField3,"sec","")
В результате получается следующее:
d:h:m:s 3:27:35 35:20 8:38 1:1:25:30 5:12:9:48
Я ищу, чтобы данные приходят форматированный следующим образом, вместо того, что он в настоящее время.
hh:mm:ss 03:27:35 00:35:20 00:08:38 25:01:25 132:09:48
Вот функция, в которой я работаю с для достижения этой цели, но мои попытки не смогли получить форматирование, как я хочу.
Function funcFormatTime(TimeString)
Dim TimeArray
Dim h, m, s, hh, mm, ss
TimeArray = Split(TimeString, ":", -1, 1)
d = TimeArray(0)
h = TimeArray(1)
m = TimeArray(2)
s = TimeArray(3)
Do Until s < 60
s = s - 60
m = m + 1
Loop
Do Until m < 60
m = m - 60
h = h + 1
Loop
Do Until h < 24
h = h - 24
Loop
If Len(Trim(h)) = 1 Then hh = "0" & h Else hh = h
If Len(Trim(m)) = 1 Then mm = "0" & m Else mm = m
If Len(Trim(s)) = 1 Then ss = "0" & s Else ss = s
funcFormatTime = hh & ":" & mm & ":" & ss
End Function
Это сработало чудесно! Спасибо, что помогли мне в этом. –