1

右側のセルが 0 未満かどうかをテストするコードを実行していますVBA。そうであれば、アクティブ セルを 0 にします。これは、セルが入力されたときに実行されます。これが私がこれまでに持っているものです:

Private Sub worksheet_change(ByVal target As Range)  
If Not Intersect(target, Range("c7:c27")) Is Nothing Then isNegative  
End Sub

その後

Sub isNegative()  
Dim cell As Range  
If ActiveCell.Offset(1, 0).Value < 0 Then  
ActiveCell.Value = 0  
End If  
End Sub  

しかし、私が想定しているのは、計算する前にデータをチェックするということです。これを修正するにはどうすればよいですか?

4

1 に答える 1

2

これは、セルが入力されたときに実行されます。

このような?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim aCell As Range

    If Not Intersect(Target, Range("C7:C27")) Is Nothing Then
        For Each aCell In Range("C7:C27")
            If aCell.Offset(1, 0).Value < 0 Then aCell.Value = 0
        Next
    End If
End Sub
于 2013-04-24T14:07:04.837 に答える