1

Я пытаюсь, чтобы Excel преобразовал ввод "mm:ss" в формат "ss" в той же ячейке.

Например, я хочу, чтобы пользователь ввел «1:21» (не время суток, а мм: сс) в ячейку A1, а Excel преобразовал его в секунды и сообщил решение в ячейке A1, той же ячейке.

Я предполагаю, что это должно быть запрограммировано в VBA, но у меня недостаточно возможностей для создания собственной программы.

1 ответ1

0

Этот код VBA должен работать:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    Application.EnableEvents = False
    theRow = Target.Row
    theColumn = Target.Column
    Dim section() As String
    theCharacter = ":"
    theValue = Target.Value
    pos = InStr(theValue, theCharacter)
    If pos <> 0 Then
        section() = Split(theValue, theCharacter)
        minutesValue = section(0)
        secondsValue = section(1)
        newValue = (minutesValue * 60) + (secondsValue)
        Target.Value = newValue
    End If
    Application.EnableEvents = True

ErrorHandler:
    Application.EnableEvents = True

End Sub

Откройте VBA / Macros с помощью ALt+ F11, дважды щелкните по листу и вставьте код с правой стороны.

Ячейки должны быть отформатированы как текст, чтобы макрос мог найти символ :

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .