VBA在If / Then语句之前计算单元格值

时间:2013-04-24 14:02:57

标签: vba if-statement

我在VBA中运行代码来测试右边的单元格是否小于0,如果是,则测试活动单元格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  

但是,我假设发生的事情是它在计算之前检查数据。我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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