使用 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
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