
비디오 인터뷰를 녹취한 문서가 있습니다. 비디오 자체에는 SMPTE 타임코드와 BITC(번인 타임코드)가 내장되어 있습니다. SMPTE 타임코드와 BITC는 인터뷰가 촬영된 시간(24시간 형식)에 해당합니다.
전사 문서에는 2분마다 대괄호 안에 타임스탬프가 [hh:mm]
형식으로 표시되어 있습니다. 그러나 이러한 전사 타임스탬프는 '00:00'부터 시작됩니다.
일종의 "검색 및 바꾸기" 기능을 사용하여 문서를 탐색하고 모든 인스턴스를 찾아 hh:mm
해당 타임스탬프에 고정 시간을 추가하여 시간을 반영하고 SMPTE 타임코드와 일치시키는 방법이 있습니까?
완벽한 솔루션은 다음과 같은 도구입니다.
[hh:mm]
형식 의 모든 타임스탬프를 찾습니다.- 모든 원래 타임스탬프 "xx:xx"에 인터뷰 시작 시간 "yy:yy"를 24시간 형식으로 추가합니다.
- 타임스탬프를 xx:xx+yy:yy와 동일한 새로운 수정된 타임스탬프 "zz:zz"로 바꿉니다.
예를 들어 인터뷰가 오전 9시 30분에 시작했다면 각 타임스탬프는 다음과 같은 방식으로 대체됩니다.
- 00:00 + 9:30 = 9:30
- 00:02 + 9:30 = 9:32
- 00:04 + 9:30 = 9:34
- 등.
답변1
이것이 최선의 방법인지는 의심스럽지만 여기에 한 가지 해결책이 있습니다. 시간 증가분을 어떻게 입력할지 또는 데이터가 한 셀의 단락에 불과한지 확실하지 않기 때문에 분명히 세련되지는 않았지만 대부분의 방법을 얻을 수 있습니다.
활성 셀 값을 "["를 찾는 배열로 분할한 다음 처음 2자를 시간 단위로 조정하고 문자 4와 5를 분 단위로 조정한 다음 모두 다시 합칩니다.
또한 이것은 매우 좋은 코딩 방법이 아닌 활성 셀에서 작동합니다.
Sub update_times()
Dim sParts() As String
Dim input_text As String
Dim output_text As String
Dim split_on As String
Dim hours_add As Integer
Dim minutes_add As Integer
Dim hours_final As Integer
Dim minutes_final As Integer
split_on = "["
hours_add = 9
minutes_add = 30
input_text = ActiveCell.Value
sParts = Split(input_text, split_on)
output_text = sParts(0)
For i = 1 To UBound(sParts)
hours_final = Left(sParts(i), 2) + hours_add
minutes_final = Mid(sParts(i), 4, 2) + minutes_add
'checks to wrap data
If minutes_final > 59 Then
hours_final = hours_final + 1
minutes_final = minutes_final - 60
End If
If hours_final > 23 Then
hours_final = hours_final - 24
End If
'put the part back together with the new hour and minutes
sParts(i) = "[" & Format(hours_final, "00") & ":" & Format(minutes_final, "00") & Right(sParts(i), Len(sParts(i)) - 5)
'add the part to the final string
output_text = output_text & sParts(i)
Next
ActiveCell.Value = output_text
End Sub