1

我正在运行代码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  

但是,我假设正在发生的是它在计算之前检查数据。我该如何解决?

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 回答