永发信息网

用vba在EXL表格编写的一段代码,请大神帮忙修改怎样可以运行成功。计算时运行时错误13,类型不匹配

答案:5  悬赏:80  手机版
解决时间 2021-01-25 15:46
  • 提问者网友:辞取
  • 2021-01-24 17:57
Private Sub Worksheet_Change(ByVal Target As Range)If Range("A1:Z500") > 17 ThenMsgBox "提示:有大于18的单元格"End IfEnd Sub
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-01-24 18:18
这个代码错, Range("A1:Z500") > 17,这个区域和17一个数字没法比较。应该是这个区域中逐个单元格与17做比较。
Private Sub Worksheet_Change(ByVal Target As Range)
dim c
for each c in range("A1:Z500").cells
If c > 17 Then
MsgBox "提示:有大于18的单元格"
exit for
End If
next c
End Sub

但是,有必要每改一个单元格,都把500个单元格检查一次吗?也没错,只是……
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-01-24 21:52
Private Sub Worksheet_Change(ByVal Target As Range) If Application.CountIf(Range("A1:Z500"), ">18") Then     MsgBox "提示:有大于18的单元格" End If End Sub
  • 2楼网友:舍身薄凉客
  • 2021-01-24 20:20
你好! Private Sub Worksheet_Change(ByVal Target As Range) If Application.CountIf(Range("A1:Z500"), ">18") Then     MsgBox "提示:有大于18的单元格" End If End Sub 仅代表个人观点,不喜勿喷,谢谢。
  • 3楼网友:等灯
  • 2021-01-24 19:48
range是个区域,比较大小要统计的 If WorksheetFunction.CountIf(Range("A1:Z500"), ">17") Then MsgBox "提示:有大于18的单元格" End If
  • 4楼网友:傲气稳了全场
  • 2021-01-24 19:13
Private Sub Worksheet_Change(ByVal Target As Range) For Each Target In Range("A1:Z500")     If Target.Value > 17 Then        MsgBox "提示:有大于17的单元格"        Exit Sub     End If Next End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯