excel - 当 Excel 单元格区域中的数据更新时提示消息框

标签 excel excel-2007 vba

我为此搜索了高低,但无法让它在我的整个范围内工作。这是我的第一篇文章,所以要温柔。

我有一个算法可以分析某些产品应该从一个生产阶段转移到下一个生产阶段的时间。然后,它提供完成下一阶段生产所需的资源量。

我的问题是,当资源超过可用资源时,我希望出现一个弹出框并警告用户;这应该发生在范围内的所有单元格上。我已经让它成功工作,但只有当单元格“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/

相关文章:

arrays - 使用数组的 VBA 自动筛选 - 如果不在筛选列表中则忽略条件

python - 使用 python 代码比较 Excel 列

Excel工作表中列中字符串模式匹配的VBA代码

vba - Excel VBA - 以编程方式更改图表的来源?

c# - 以编程方式在 C# 中的 Excel 中插入行时,图表和形状不会移动

excel - 运行时错误 5 : Invalid Procedure Call or Argument

python - 如何在 Excel XLS 文件中提取 PNG 附件?

python - 使用python添加两个列表和一个图像作为excel文件的标题

vba - Excel VBA - 将带有文本和格式的新列添加到多个工作表

vba - Excel中的小数位问题