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

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日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用