Добавление временных кодов в Excel

У меня есть около 140 ячеек (они находятся в вертикальном столбце), содержащих временные коды в формате чч: мм: сс:ff. Есть 24 кадра в секунду. Я хотел бы добавить их, поэтому у меня есть общая продолжительность всех выдержек. Может кто-нибудь сказать мне, как я мог сделать это в Micosoft Excel? Любая помощь очень ценится, так как я буквально невежественен... Большое спасибо заранее!!

введите описание изображения здесь

2 ответа

Вы можете получить продолжительность в кадрах, выполнив некоторые математические расчеты. Сначала вы должны выбрать каждую часть метки времени (Часы, Минуты, Секунды и Кадры), а затем просто вычислить ее, чтобы получить количество кадров с некоторого предыдущего момента времени (00:00:00:00). Из этого вы можете получить длительность каждого кадра от своего предшественника и суммировать результаты для общего:

введите описание изображения здесь

Это может быть не лучшим способом (или может быть?), Но это работает.

  1. Отдельно чч: мм: сс от фф.
  2. Сумма чч: мм: сс и фф соответственно.
  3. Добавьте кадры в чч: мм: сс.

превосходить

Этот код из моего дополнения Excel "TCCalculator". Калькулятор бесплатный, но не код. Я могу разместить здесь ссылку на мой Google Drive, если модератор даст мне свое разрешение

Вы должны сделать три вещи.

1- Create a Button to start the calculation (ButtonTC).
2- Create some VBA functions (I will show it to you)
3- Select a range and click on ButtonTC

С помощью этого метода мы можем выбрать диапазоны различных ячеек. Это составит сумму всего.

Все, что вам нужно, это следующие функции:

Частный Sub ButtonTC_Click

Private Sub ButtonTC_Click()
    Dim framesRef As Double
    ‘framesRef can be 23.98, 24, 25, 29.97…
    'Beware, the decimal point may vary depending on the system configuration
    'The cell that will store the final result must be free of data. We can also get the result with a msgbox
        Cells("1", "A") = f_CalculateRangeTC(framesRef)
End Sub

Открытая функция f_CalculateRangeTC

Public Function f_CalculateRangeTC(ByVal framesRef As Double) As String
Dim obj_Cell As Range
Dim sumaTotalFrames As Double
        sumaTotalFrames = 0
        For Each obj_Cell In Selection.Cells
            With obj_Cell
                sumaTotalFrames = sumaTotalFrames + f_CalculateTcInFrames(.Text, framesRef)
            End With
         Next
    f_CalculateRangeTC = f_ConvertFramesTo_HHMMSSFF(sumaTotalFrames, framesRef)
End Function

Открытая функция f_CalculateTcInFrames

Public Function f_CalculateTcInFrames(ByVal numToConvert As String, ByVal framesRef As Double) As Double
    Dim fra2f, seg2f, min2f, hor2f As Double
    fra2f = 0
    seg2f = 0
    min2f = 0
    hor2f = 0
    ‘This two sentences convert an unformated number to correct format  1:23:05  to  00012305
    ‘But this not work with this:   1:1:02 (1 minute, 1 second, 2 frames)  becomes 00001102  ¡ERROR!
    numToConvert = Replace(numToConvert, ":", "")
    numToConvert =  Right("00000000" & numToConvert, 8)

    fra2f = Mid(numToConvert, 7, 2)                                 'Frames to frames
    seg2f = Mid(numToConvert, 5, 2) * (framesRef)               ‘Seconds to frames
    min2f = Mid(numToConvert, 3, 2) * (60 * framesRef)      ‘Minutes to frames
    hor2f = Mid(numToConvert, 1, 2) * (3600 * framesRef)        ‘Hours to frames
    sumaFrames = hor2f + min2f + seg2f + fra2f
     f_CalculateTcInFrames = sumaFrames        'Salimos de la función y devolvemos el valor.
Exit Function
Другие вопросы по тегам