用VBA代码 当M5:BL5中任意一个单元格不为空且小于100时弹出提示窗口 VBA应该怎么写

用VBA代码 当M5:BL5中任意一个单元格不为空且小于100时弹出“买进美元”提示窗口 应该怎么写,M5:BL5已经用函数写入判断其他数据,满足条件返回数值,否则为空

Private Sub Worksheet_Change(ByVal Target As Range)
    x = Target.Row
    y = Target.Column
    If x = 5 And y >= 13 And y <= 64 Then '如果目标单元格的行序数是第5行,并且列序数在13至64之间,那么
        If IsNumeric(Cells(x, y)) = True Then '如果目标单元格是数字,那么
            If Cells(x, y) < 100 Then MsgBox "买进美元", , "提示" '如果数字小于100那么弹出该提示
        End If
    End If
End Sub

追问

M5:BL5已经用函数写入判断其他数据,满足条件返回数值,否则为空,这个函数返回的结果满足条件不弹窗啊,只有手动在M5:BL5内输入数字才会弹窗,为啥?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-17

追问

当M5:BL5中同时存在满足条件的单元格超过一个以上时不弹提示哦,只存在一个满足条件单元格时候才会弹窗,怎么改呢

追答

这个就是,已经改成初次满足时弹窗提示

本回答被提问者采纳
第2个回答  2019-05-17
Sub 买入判断()
With Sheet1
For Each cell In .Range("M5:BL5")
    If cell.Value <> "" And cell.Value < 100 Then
      MsgBox "买进美元"
      Exit for
    End If    
  Next cell
End With
End Sub

以上代码已测试。符合条件只跳一次。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
With ActiveSheet
For Each cell In .Range("M5:BL5")
    If cell.Value <> "" And cell.Value < 100 Then
      MsgBox "买进美元"
      Exit Sub
    End If
  Next cell
End With
End Sub

追问

额试了,原来是插入模块,用按钮来执行啊,能不能改成工作表事件监控的那种啊,而且满足条件只弹一次就好了,你前面那段是有几个满足条件的就弹窗几次

相似回答