翼蘩酆瞬 2022-02-02 21:08 采纳率: 100%
浏览 80
已结题

Visual Basic 6.0 InputBox如何让输入为空和取消/退出的功能不一致

VB如何让InputBox输入空字符串的时候警告用户输入的数据有误并让用户重新输入,但是单击取消或者单击退出按钮时就结束程序运行
(即如何解决单击取消,单击退出和输入为空意义不一致的问题)

Private Sub Command1_Click() '布局中的按钮,单击该按钮执行下述程序'

Dim score As Variant, A As Boolean    

score = InputBox("请输入平均成绩:", "输入平均成绩")   

A = IsNumeric(score)    

If score = "" Then    '如果输入为空或者单击了取消或者单击退出'
End        '那么结束程序'
End If

Do While score < 0 or score > 100 Or A = False
    x = MsgBox("输入有误", vbExclamation, "警告")    
    score = InputBox("请输入平均成绩:", "输入平均成绩")  
    If score >= 0 And score <= 100 Then    
        Exit Do
    End If
Loop

Select Case score

    Case 0 To 59

        Picture1.Print "平均成绩小于60,不能评定奖学金!"
    
    Case 60 To 69

        Picture1.Print "平均成绩为" & score & "可以评定四等奖学金!"

    Case 70 To 79

        Picture1.Print "平均成绩为" & score & "可以评定三等奖学金!"

    Case 80 To 89

        Picture1.Print "平均成绩为" & score & "可以评定二等奖学金!"
        
    Case 90 To 100
    
        Picture1.Print "平均成绩为" & score & "可以评定一等奖学金!"
        
    Case Else
        
        End
    
End Select

End Sub

目前是输入为空也退出程序,现在要求输入为空时MsgBox警告用户输入的数据有误并让用户重新输入,请问如何解决?

  • 写回答

2条回答 默认 最新

  • 关注

    先判断是否为空值,再转换数据类型:

    score = InputBox("请输入平均成绩:", "输入平均成绩")    
    If score = "" Then    '如果输入为空或者单击了取消或者单击退出'
    End        '那么结束程序'
    End If
    A = IsNumeric(score)    
    
    用CInt函数转换为整形再用if语句判断
    
    Do While CInt(score) < 0 or CInt(score) > 100 Or A = False
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月4日
  • 创建了问题 2月2日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法