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

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 英飞凌TC387使用MCAL唤醒TJA1145问题
  • ¥15 android tv图标显示异常
  • ¥20 (标签-AR|关键词-预测分析)
  • ¥15 MATLAB矩阵分离问题
  • ¥15 QT IFW 自定义界面添加lineedit小键盘输入数字无效果
  • ¥15 python thinter动态建立Entry并读取数据
  • ¥150 电路仿真,演示反激变压器升压
  • ¥100 libcurl使用无法连接服务器问题
  • ¥30 链表栈表达式求值求解
  • ¥15 关于龙芯1b,JTAG停止调试服务