【发布时间】:2020-10-25 20:14:04
【问题描述】:
有人可以修改我的代码,使消息框只显示一次吗? 我已经做了一段时间了,但没有成功。
我正在处理的文件是一个寄存器。每当 AD13:AJ13 的总和超过 4 时,msg 应该显示, 提示用户采取行动。但是到目前为止,一旦范围内的单元格超过 4,msgbox 就会显示范围内的所有更改,即使总和低于 4。这不是故意的,我只希望用户在范围内的每个单元格上收到一次通知( AD13:AJ13)
代码:
Private Sub Worksheet_Calculate()
Dim myCell As Range
For Each myCell In Range("AD13:AJ13")
If myCell > 4 Then
MsgBox "Management approval is required once the value exceed 4"
Exit Sub
End If
Next myCell
End Sub
【问题讨论】:
-
我认为问题与您选择放置此代码的事件有关。为什么要在计算事件中使用它?
-
我怀疑@brax 确定了核心问题。使用
Worksheet_Change()似乎更自然——确保代码仅在该范围内的单元格更改时运行。您可以维护一个全局布尔标志来跟踪该消息框何时显示,但这对我来说有点太笨拙了。 -
不能给你任何明确的答案braX。这是我在搜索互联网后能够完成的工作。你能生产出能让我达到我想要的结果的东西吗?