Изменение на целевую величину val как диапазон, чтобы игнорировать пустые ячейки и ячейки с 0 значениями
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
**If c.Value <> Empty Or c.Value = 0 Then
End If**
If c.Column = 11 Then
c.Offset(0, -1).Value = Now()
End If
Next c
End Sub
У меня вышеупомянутый код работает хорошо, за исключением того, что я пытаюсь добавить жирный код, чтобы игнорировать пустые ячейки (также может быть возможность игнорировать ячейки с 0 значениями, но не обязательно).
Спасибо
2 ответа
If c.Value != ""
должен работать для пустых ячеек.
По крайней мере, это сработало здесь.
Что касается игнорирования значения 0, не могли бы вы просто изменить предложение if на if c.Value > 0
?
Похоже, у вас два аргумента идут по-разному, потому что вы смешиваете <> Empty
а также =0
в том же тесте.
В любом случае, это делает изменение, если в ячейке есть что-то кроме 0, и, в качестве бонуса, отменяет изменение, если оно пустое или 0.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
For Each c In Target.Cells
If c.Column = 11 Then
If c.Value = "" Or c.Value = 0 Then
c.Offset(0, -1).ClearContents
Else
c.Offset(0, -1).Value = Now()
End If
End If
Next c
Application.EnableEvents = True
End Sub