我想验证如果列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
答案 0 :(得分:2)
这应该这样做:
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
答案 1 :(得分:0)
无需VBA即可轻松完成此操作。在第三列(我将使用Z)中,将以下公式复制并粘贴到列中,将第一行的索引替换为1:
=AP1>X1
然后在附近的单元格中,
=COUNTIF($Z$1:$Z$N, FALSE)
其中N是最后一行的索引。然后,您可以检查该单元格的值是否大于0.