使用 excel 如果其他单元格值 > 0,则将一个单元格值设置为 0

make one cell value 0 if other cell value > 0 using excel

A   B
0   1
2   0
3   0
0   4
5   0

如果我在 Cell.(A1)= 0 上写东西,它会自动使 cell(B1) =0。
如果我在 Cell.(B1)= 0 上写东西,它会自动使 cell(A1) =0。

假设您希望 B 列中的基值基于 A 值的值。

那么您的代码应该如下所示:

Sub fillValues()
Dim i, k As Integer
k = Cells(1, 1).CurrentRegion.Rows.Count     'determine last row
For i = 1 To k
    If Cells(i, 1).Value > 0 Then
        Cells(i, 2).Value = 0
    End If
Next i
End Sub

如果您希望在 A:B 列的任意位置输入值 0 后,这些值会自动更改,那么您需要在 Worksheet_Change 事件中输入代码。

注意:当您将其中一个单元格更改为 0 或从 0.

时,我不确定您是否想了解另一个单元格 0
Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
If Not Intersect(Target, Columns("A:B")) Is Nothing Then ' check if a cell in Columns A:B is changed
    If Target.Value = 0 Then '<-- if the value changed is 0
    ' option 2 to your post
    'If Target.Value > 0 Then '<-- if the value changed is > 0
        Select Case Target.Column '<-- check which column modifed, A or B
            Case 1
                Target.Offset(, 1).Value = 0
            Case 2
                Target.Offset(, -1).Value = 0
        End Select            
    End If    
End If
Application.EnableEvents = True

End Sub