检查一行中的单元格值是否超过某个值

时间:2018-06-11 08:43:59

标签: excel vba excel-vba

我想检查excel给定行中的任何单元格值(例如第6行)是否超过40.我写道:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim cell As Range

    For Each cell In ActiveSheet.Rows(6)
        If cell.Value > 40 Then MsgBox "You exceeded 40 in cell: " & cell.Address & ". Please correct your input!"
    Next cell

End Sub

但它给了我一条错误信息

  

运行时错误13,类型不匹配。

你能告诉我吗?感谢。

1 个答案:

答案 0 :(得分:0)

获取每个单元格,将for - 循环更改为

For Each cell In ActiveSheet.Rows(6).Cells

但是,每次在工作表中更改任何 时,这将检查完整的第6行。我想最好只检查Target的值 - 这是用户当前修改的单元格。

<强>更新 你可以改变你的日常工作

Private Sub Worksheet_Change(ByVal Target As Range)
    If target.row = 6 && Target.Value > 40 Then 
        MsgBox "You exceeded 40 in target: " & target.Address & ". Please correct your input!"
    endif
End Sub

但是,如果您只想阻止用户输入大于40的某个值,则可以使用数据验证轻松地在没有VBA的情况下将其归档:

马克第6行, 选择数据 - &gt;数据验证 - &gt;数据验证

输入例如“整数”(如果要允许逗号值,则为小数),“小于或等于”,最大值为40。