Цитата |
---|
If Target.Count > 1 Then Exit Sub |
Да, то что нужно : )
Теперь все работает. Спасибо!
И возник еще одни вопрос по совершенствованию вашего кода:
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub Dim rRange As Range Dim x() As Variant r = Cells(Rows.Count, 6).End(xlUp).Row If Intersect(Target, Range(Cells(2, 6), Cells(r, 6))) Is Nothing Then Exit Sub Application.EnableEvents = False If Target.Count = 1 Then Set rRange = Target Else Set rRange = Selection End If With rRange ReDim x(1 To .Count) For i = 1 To .Count x(i) = .Cells(i).Value Next i Application.Undo For i = 1 To UBound(x) If x(i) = 0 Or x(i) <> Empty Then .Cells(i).Offset(, 15) = Cells(.Cells(i).Row, 6) .Cells(i).Offset(, 16) = Date .Cells(i) = x(i) End If Next i End With Application.EnableEvents = True End Sub Sub www() Application.EnableEvents = True End Sub |
Как работает сейчас: если основная цена была 100р. и стала НОЛЬ, то справа в истории изменений историческая цена становится 100р. Затем, после того как поставят новую основную цену с НОЛЯ на 200р., то справа историческая цена 100р. поменяется на НОЛЬ.
Задача: если основная цена с НОЛЯ меняется на НЕНОЛЬ, то историческая не меняется на НОЛЬ.
При этом дата смены ЛЮБОЙ цены должна меняться на текущую. Это нужно.
Т.е. любые изменения цены отличной от НУЛЯ фиксируются. А если с НОЛЯ меняется на другую цену, то "историческую" на НОЛЬ не меняем.
Смысл в том, что на НОЛЬ меняется цена у отсутствующих товаров, и НОЛЬ не дает никакой информации и нужен только для технической задачи.
А вот в истории справа нужны только цены отличные от НОЛЯ.
Смог объяснить? : )
Можно ли прописать такое условие?