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 のセルを無視することもできますが、必須ではありません)。

4

2 に答える 2

0

あなたは2つの議論を異なる方法で行っているようです。つまり、まとめ<> 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
于 2013-06-18T20:03:39.123 に答える