Попытался добавить макрос в продолжение другого макроса, чтобы вводить время без разделителей. https://www.planetaexcel.ru/techniques/6/51/. Получилось что то такое. Только потом макрос выдаёт ошибку 1004 "Unable to set the NumberFormat property of the Range class".
Код
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 2
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
Unprotect Password:="1583568383as"
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).Value = Format(Now, "dd.mm.yyyy")
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
Protect Password:="1583568383as"
End If
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 14
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
Unprotect Password:="1583568383as"
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).Value = Format(Now, "hh:mm")
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
Protect Password:="1583568383as"
End If
If Not Intersect(Target, Range("O:O")) Is Nothing Then
With Target
vVal = Format(.Value, "0000")
If IsNumeric(vVal) And Len(vVal) = 4 Then
Application.EnableEvents = False
.Value = Left(vVal, 2) & ":" & Right(vVal, 2)
.NumberFormat = "[h]:mm"
End If
End With
End If
Application.EnableEvents = True
End Sub
По почерку принтера можно судить о том, как нервничает компьютер
А потом вы к строке применяете формат время. Если речь идет о вводе 4 цифр без разделителя, и чтобы в ячейке в результате получалось время в формате чч:мм, то тогда надо отделять первые 2 символа, преобразовывать их в число и умножать это число на 1/24 (доля 1 часа в сутках). Потом брать 2 последних цифры, преобразовывать в число, и умножать число на 1/(24*60) - доля 1 минуты в сутках. Потом эти числа складывать и применять уже к ЧИСЛУ NumberFormat. Типа:
Толку от этого лазанья? Думаете где-то лежит готовое решение для Вашей конкретной ситуации и терпеливо Вас дожидается? Ошибаетесь, его писать нужно специально для Вашей задачи, а для этого нужно знать ЗАДАЧУ, а не то, что Вы пытались добавить какое-то продолжение в рабочий макрос. Покажите какой макрос Вы хотели добавить, какую задачу решаете?
Согласие есть продукт при полном непротивлении сторон