我为此搜索了高低,但无法让它在我的整个范围内工作。这是我的第一篇文章,所以要温柔。
我有一个算法可以分析某些产品应该从一个生产阶段转移到下一个生产阶段的时间。然后,它提供完成下一阶段生产所需的资源量。
我的问题是,当资源超过可用资源时,我希望出现一个弹出框并警告用户;这应该发生在范围内的所有单元格上。我已经让它成功工作,但只有当单元格“S7”超过该值时。任何帮助将不胜感激。
代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Set myRng = ThisWorkbook.Sheets("SMT 2").Range("S7:S26")
For Each mycell In myRng
If mycell.Value >= 16 Then sVar = _
MsgBox("Will Enough Pre-Wave Resources be Available?", 4, "Attention!")
If sVar = 7 Then
Application.Undo
End If
Exit For
Next
End Sub
最佳答案
你不需要循环。您可以使用 Intersect
检查 Range("A7:A26")
范围内是否有任何单元格被改变。另请注意,以下代码不适用于用户粘贴值 >16
的情况在那个范围内。
这是你正在尝试的吗?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Dim lRow As Long
If Target.CountLarge > 1 Then Exit Sub
On Error GoTo Whoa
Set myRng = Range("A7:A26")
Application.EnableEvents = False
If Not Intersect(Target, myRng) Is Nothing Then
lRow = Target.Row
If Range("S" & lRow).Value >= 16 Then sVar = _
MsgBox("Will Enough Pre-Wave Resources be Available?", 4, "Attention!")
If sVar = 7 Then Application.Undo
End If
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
关于excel - 当 Excel 单元格区域中的数据更新时提示消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409748/