与列比较时如何创建循环
How to create a loop when comparing to columns
我想要验证如果 AP 列大于 X 列则显示一条消息,但是我希望这条消息只出现一次并且永远只出现一次。例如,如果单元格 ap7 大于 x7 显示一条消息,则用户单击确定。那么如果单元格ap8小于x8,我不希望之前验证的消息再次出现。
Dim lstrw As Long
Dim i As Long
With Sheets("Main")
lstrw = .Range("AP" & Rows.Count).End(xlUp).Row
For i = 2 To lstrw
If .Cells(i, "AP").value > .Cells(i, "X").value Then
MsgBox "Your Pieces Are Over Suggested", vbOKOnly
Exit For
End If
Next i
End With
应该这样做:
Private Sub Worksheet_Calculate()
Dim lstrw As Long
Dim i As Long
With Sheets("Main")
lstrw = .Range("AP" & Rows.Count).End(xlUp).Row
For i = 2 To lstrw
If .Cells(i, "AP").Value > .Cells(i, "X").Value Then
MsgBox "Your Pieces Are Over Suggested", vbOKOnly
Exit For
End If
Next i
End with
End Sub
您无需 VBA 即可轻松完成此操作。在第三列(我将使用 Z)中,将以下公式复制并粘贴到该列中,将 1 替换为第一行的索引:
=AP1>X1
然后在附近的单元格中,执行
=COUNTIF($Z:$Z$N, FALSE)
其中 N 是最后一行的索引。然后您可以检查该单元格的值是否大于 0。
我想要验证如果 AP 列大于 X 列则显示一条消息,但是我希望这条消息只出现一次并且永远只出现一次。例如,如果单元格 ap7 大于 x7 显示一条消息,则用户单击确定。那么如果单元格ap8小于x8,我不希望之前验证的消息再次出现。
Dim lstrw As Long
Dim i As Long
With Sheets("Main")
lstrw = .Range("AP" & Rows.Count).End(xlUp).Row
For i = 2 To lstrw
If .Cells(i, "AP").value > .Cells(i, "X").value Then
MsgBox "Your Pieces Are Over Suggested", vbOKOnly
Exit For
End If
Next i
End With
应该这样做:
Private Sub Worksheet_Calculate()
Dim lstrw As Long
Dim i As Long
With Sheets("Main")
lstrw = .Range("AP" & Rows.Count).End(xlUp).Row
For i = 2 To lstrw
If .Cells(i, "AP").Value > .Cells(i, "X").Value Then
MsgBox "Your Pieces Are Over Suggested", vbOKOnly
Exit For
End If
Next i
End with
End Sub
您无需 VBA 即可轻松完成此操作。在第三列(我将使用 Z)中,将以下公式复制并粘贴到该列中,将 1 替换为第一行的索引:
=AP1>X1
然后在附近的单元格中,执行
=COUNTIF($Z:$Z$N, FALSE)
其中 N 是最后一行的索引。然后您可以检查该单元格的值是否大于 0。