Собственно вопрос в названии темы. Подскажите как лучше преобразовать с помощью VBA значения в ячейках которые содержат "КВ:"? Пример данных во вложении.
Собственно вопрос в названии темы. Подскажите как лучше преобразовать с помощью VBA значения в ячейках которые содержат "КВ:"? Пример данных во вложении.vider
vider, если в ячейках всегда указаны и часы и минуты, то можно так: [vba]
Код
Sub timeFormat() lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d+" Set objMatches = .Execute(Cells(i, 1)) If objMatches.Count > 0 Then Cells(i, 1) = TimeSerial(objMatches.Item(0), objMatches.Item(1), 0) End With Next i [a1].Resize(lr).NumberFormat = "[hh]:mm" End Sub
[/vba]
Преобразовывает все значения в 1-м столбце
vider, если в ячейках всегда указаны и часы и минуты, то можно так: [vba]
Код
Sub timeFormat() lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d+" Set objMatches = .Execute(Cells(i, 1)) If objMatches.Count > 0 Then Cells(i, 1) = TimeSerial(objMatches.Item(0), objMatches.Item(1), 0) End With Next i [a1].Resize(lr).NumberFormat = "[hh]:mm" End Sub
[/vba]
Преобразовывает все значения в 1-м столбцеManyasha
Sub dd() With [A1].CurrentRegion .Value = Application.IfError(Evaluate(Join(Array("mmult(MID(", _ ",SEARCH({"":"","".""},", ")+2,2)/24/60^{0,1},{1;1})"), .Address(, , _ Application.ReferenceStyle))), .Value) .NumberFormat = "[hh]:mm" End With End Sub
[/vba]
а можно немного поизвращаццо? [vba]
Код
Sub dd() With [A1].CurrentRegion .Value = Application.IfError(Evaluate(Join(Array("mmult(MID(", _ ",SEARCH({"":"","".""},", ")+2,2)/24/60^{0,1},{1;1})"), .Address(, , _ Application.ReferenceStyle))), .Value) .NumberFormat = "[hh]:mm" End With End Sub