Страницы: 1
RSS
Условное форматирование по времени/изменение формата 00:00:00 на 0:00:00, Для использования моей формулы, Excel нужен формат 0:00:00, однако он появляется только если вручную менять содержимое ячейки, а массив данных предполагается большой.
 
Добрый день! Изначальная задача состоит в том, чтобы Эксель красил красным значения больше чем три минуты 00:03:00. Вопрос на данный момент такой: нужно формат 00:00:00 превратить в формат 0:00:00 сразу для всех ячеек столбца.                                                  
     Сейчас, для решения изначальной задачи форматирования я использую формулу =ЕСЛИ(L2>ВРЕМЯ(0;3;0);"КРАСНОЕ";"БЕЛОЕ"). Но данные я ввожу не в ручную, поэтому они отображаются в формате 00:00:00 и формула работает некорректно, то есть при L2 = 00:01:35 будет выводится "КРАСНОЕ" Если изменить данные в ячейке в ручную, то они автоматически преобразуются в формат 0:00:00 и формула работает корректно. Изменение формата происходит после нажатия на ячейку,перехода в область формулы(кликнуть 2 раза) а затем клавиши Enter. При этом  Макрорекордер видит это преобразование так Sub Макрос1()
'
' Макрос1 Макрос
'

'
   ActiveCell.FormulaR1C1 = "12:02:45 AM"
   Range("L5").Select
End Sub

Но такой вариант, конечно, не подходит, потому что значения в ячейках всегда разные.


Как Вы думаете, что можно с этим сделать?
 
Код
=ЕСЛИ(ВРЕМЗНАЧ(L2)>ВРЕМЯ(0;3;0);"КРАСНОЕ";"БЕЛОЕ")
 
Так? (только диапазон поменяйте)
Изменено: DAB - 17.08.2023 21:22:57
 
Здравствуйте, сейчас по этой команде ставятся дата изменения в одном столбце (L:L)
Скажите пожалуйста, как можно добавить ещё один столбец? Диапазон не подходит, так как там уже стоят значения. Нужно в разных столбцах






Private Sub Workshee­t_Change(ByVal Target As Range)

'Update 20140722


Dim WorkRng As Range


Dim Rng As Range


Dim xOffsetColumn As Integer


Set WorkRng = Inters­ect(Application.Acti­veSheet.Range("L:L"), Target)


xOffsetColumn = 1


If Not WorkRng Is No­thing Then


​ ​ ​ Application.E­nableEvents = False


​ ​ ​ For Each Rng In WorkRng


​ ​ ​ ​ ​ ​ ​ If Not VBA.IsEmpty(Rng.Va­lue) Then


​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Rng.Offset(0, xOf­fsetColumn).Value = Now


​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Rng.Offset(0, xOf­fsetColumn).NumberFo­rmat = "dd-mm-yyyy, hh:mm:ss"


​ ​ ​ ​ ​ ​ ​ Else


​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Rng.Offset(0, xOf­fsetColumn).ClearCon­tents


​ ​ ​ ​ ​ ​ ​ End If


​ ​ ​ Next


​ ​ ​ Application.E­nableEvents = True


End If


End Sub
Изменено: Russnur - 26.01.2024 16:12:05
Страницы: 1
Наверх