问题
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
I have the above code working well except I am trying to add the bolded code to ignore any blank cells (could also be the option of ignoring 0 value cells, but not necessary).
Thanks
回答1:
You seem to have your two arguments going in different ways, in that your lumping together <> Empty
and =0
in the same test.
At any rate, this makes the change if there's something in the cell besides 0 and, as a bonus, clears the change if it is empty or 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
回答2:
If c.Value != ""
should work for blank cells.
At least it worked here.
As for ignoring the value 0, couldn't you just change the if clause to if c.Value > 0
?
来源:https://stackoverflow.com/questions/17177581/change-by-val-target-as-range-to-ignore-blank-and-0-value-cells