如果目标列中的公式超过某个值,则VBA代码将显示消息框弹出窗口

时间:2014-08-18 10:31:59

标签: excel excel-vba vba

我在此网站上找到了特定单元格的代码

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") > 0.5 Then
    MsgBox "Discount too high"
End If
End Sub

但是我想知道是否有可能让整个列而不是一个特定的单元工作?

2 个答案:

答案 0 :(得分:0)

请尝试使用此事件代码:

Private Sub Worksheet_Calculate()
    Dim rr As Range, r As Range
    Set rr = Range("A:A").Cells.SpecialCells(xlCellTypeFormulas)
    For Each r In rr
        If r.Value > 0.5 Then
            MsgBox "Discount too high"
        End If
    Next r
End Sub

修改#1:

如果要将邮件限制为单行,请删除第一个子邮件并将其替换为:

Private Sub Worksheet_Change(ByVal Target As Range)
    rt = Target.Row
    If Range("A" & rt) > 0.5 Then
        MsgBox "Discount too high"
    End If
End Sub

答案 1 :(得分:0)

我想说这是在Excel中做事的错误方式:)。

我可以建议以下内容: 1.根据值添加条件格式到单元格,例如> 0.5 2.在此单元格旁边的单元格中添加一个简单的IF公式,表示错误。

使用事件将禁止撤消操作