Страницы: 1
RSS
Замена знака в ячейке Excel 2016
 
Дорогие формучане, прошу помочь по возможности!

Есть текст в ячейке "Дачный ответ (повтор), Ср. 03.25". Необходимо заменить точку, которая отделяет часы и минуты на двоеточие
Когда точка в строке одна - проблем не возникает. Но если точек несколько - начинаются проблемы. Необходимо всегда менять точку именно в куске со временем. Вхождение может быть как 1, так и 2 и 3 и 4 и т.д. Неизменный атрибут - это время вокруг нее в формате чч.мм

Прошу помочь, если это возможно.
 
Цитата
Вхождение может быть как 1, так и 2 и 3 и 4 и т.д.
Покажите в примере
 
Kuzmich,

приложил файл
 
массивно в B1 и протянуть вниз
Код
=ЗАМЕНИТЬ(A1;МАКС(ЕСЛИОШИБКА(ПОИСК(СТРОКА($A$1:$A$10)-1&".";A1);"Ё"))+1;1;":")
Лень двигатель прогресса, доказано!!!
 
Код
Sub iZamena()
Dim i As Long
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .MultiLine = True
   .Pattern = "(\d{1,2})\.(\d{2})"
  For i = 1 To 4
     If .test(Cells(i, 1)) Then
           Cells(i, 1) = .Replace(Cells(i, 1), "$1:$2")
    End If
   Next
 End With
End Sub
 
Kuzmich, макрос сработал, спасибо!
Можно как-то его изменить (если возможно), чтобы была возможность определять область применения?

Цитата
Сергей написал: массивно в B1 и протянуть вниз
Спасибо! Но не работает, если время в формате 21.45 (без 0 в качестве первого числа)
В этом случае заменяет 21.45 на 2:.45
 
Цитата
чтобы была возможность определять область применения?
Определяете последнюю заполненную ячейку в столбце А
Код
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
и цикл от 1 до iLastRow

 
Цитата
tylika93 написал: Но не работает,
не верю
Лень двигатель прогресса, доказано!!!
 
Прошу прощения, если текст в А1 работает, невнимательно прочел ваш ответ.
Спасибо!
 
Чуть проще, хотя принцип примерно из  №4
=REPLACE(A3;MAX(IFERROR(FIND("."&ROW($1:$7)-1;A3);));1;":")
Изменено: БМВ - 15.10.2019 20:19:57
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх