Страницы: 1
RSS
Преобразование времени заданного в формате hh-mm,ss в формат "hh:mm:ss"
 
Добрый день, на новом месте работы выдали таблицу Excel, которая суммирует время по критериям.

Задача написать макрос запускающейся при изменении столбца с вводимым значением времени (формата 0-20 - ноль часов двадцать минут или 0-05 ноль часов пять минут. Что бы макрос его переформатировал в удобный Excel'у формат и заменил, например - 0-20 в 0:20:00, 0-05 в 0:05:00, 0-01,5 в 0:01:30.

Я еще не овладел шаманством написания макросов, но уже сделал пример через функции, он представлен в файле.
 
да согласно Вашему названию темы - VBA умеет изменять ячейки и не только...вопрос какой? Модераторы будут ругать.

Тема: Преобразование времени заданного в формате "hh-mm,ss" (через дефис и запятую) в формат "hh:mm:ss"
не самый изысканный вариант...
Код
Sub dsd()
Dim cell As Range, rng As Range
Set rng = Range("F3:F14")
For Each cell In rng
 If InStr(1, cell, ",") = 0 Then
 k = "00"
 Else
 k = CStr(("0," & Mid(cell, InStr(1, cell, ",") + 1, 2))) * 60
 End If
cell.Offset(0, -1) = _
Format(Left(cell, InStr(1, cell, "-") - 1) & ":" & Mid(cell, InStr(1, cell, "-") + 1, 2) & ":" & k, "h:mm:ss")
Next cell
End Sub
Изменено: Mershik - 30.05.2020 22:58:14
Не бойтесь совершенства. Вам его не достичь.
 
Предложите название, отражающее задачу. Модераторы заменят.
 
Вопрос в следующем, как написать модераторам?
 
Федор Мазуров, зачем им писать? написано же -
Цитата
vikttur написал:
Предложите название
вот свое сообщение выше отредактируйте и предложите...если в к этому задаете вопрос.
Если нет то можете нажать на имя модератора и откроется профиль там будет "сообщение"
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо за пример!
Разобрался с работой данного макроса. Он правильно переформатирует числа и добавляет их в столбец E.
Но меня задумка немного другая. Погуглив, накопал то что мне нужно.
Мне нужен макрос, запускающейся при изменении ячеек (т.е. вводе в них значений), который подменит значение ячейки на отформатированное.
Такое можно реализовать?
 
Можно: смотрите в сторону событийной процедуры Worksheet_Change.  
Страницы: 1
Наверх