Изменение на целевую величину 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
Другие вопросы по тегам