Приветствую всех мастеров Экселя) Вопрос следующий...как при значении "ДА", зафиксировать текущую дату? Т.е., чтобы она не изменялась на следующий день? В моем же примере, при значении "ДА", будет постоянно обновление на текущую дату...а как ее зафиксировать в день изменения на значение "ДА"?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing And Target.Count = 1 Then
If Target = "да" Then Target.Offset(0, 1) = Date
End If
End Sub
Если текущую дату зафиксировать - она перестанет быть текущей. Вам не кажется, что здесь есть противоречие? Если нужно, чтобы дата зафиксировалась, зафиксируйте её, вбив в ячейку руками. А лучше бы рассказали, зачем Вам это и что с этим планируете делать
-Зачем нужно?...для минимизации ручной работы. Противоречие есть, поэтому и написал сюда с вопросом, есть ли способ, который позволяет фиксировать текущую дату. Спасибо за пример, но он не подходит.
Почему в вашем примере в третьей строке Target="b1"? Разумеется, если так написать, то ничего не будет работать.
Код
Private Sub Worksheet_Change(ByVal Target As Range)'запуск макроса при каждом изменении ячейки на текущем листе
If Not Intersect(Target, [a1]) Is Nothing And Target.Count = 1 Then'если изменившаяся ячейка = А1, и изменилась только одна ячейка, то
If Target = "да" Then Target.Offset(0, 1) = Date'если значение А1 = "Да", тогда в ячейку Б1 (которая смещена от А1 на 0 строк и 1 столбец вправо) прописываем текущую дату.
End If'конец условия
End Sub'конец макроса
Я правильно понимаю, что дата не будет изменяться на текущую каждый день....т.е. при значении "ДА" фиксируется текущая дата без последующего обновления?