回 帖 发 新 帖 刷新版面

主题:估计都会,就我不会

Private Sub Command1_Click()
Dim score As Single, rank As Variant, state As Variant
score = Text1.Text
If score > 85 Then
rank = "1-10"
state = "ÓÅÐã"
ElseIf score >= 75 Then
rank = "11-20"
state = "Á¼"
ElseIf score < 75 Then
rank = "20-25"
state = "&sup2;&icirc;"
End If
Text2.Text = rank
Text3.Text = state
End Sub

有什么错误啊 拜托大家??在哪里改 我菜鸟

回复列表 (共9个回复)

沙发

score = val(Text1.Text)

数据类型错误

板凳

谢谢这位大哥

3 楼


这位高手,能再详细点么?为什么用这样的方法?

4 楼

TEXT框是文本型的,而你的变量是数字型的,所以加个VAL()就把TEXT框变成变体型那就行了

5 楼

LZ的程序声明、判断部分写的是有些乱。
但是,实际上也能运行……
能得出正确的结果,并且还不出错!
当然,不鼓励以这种方式编程。

6 楼

我不知你的score是用来存储什么数据的,但无论SINGLE还是INT都是数字类型的变量,而TEXT1.TEXT是文本型的变量,你要用VAL()来把文本型转换成数字型的

7 楼

1、程序没有静态错误(在输入时不会出错);
2、程序没有动态错误(在运行时不会报错而中断);
3、程序是否有逻辑错误(几输出结果是不是设计者的本来意图)就说清了。
4、有一点点小瑕疵。从内容看rank 和 state 两个变量存储的都是字符串,所以不应该使用变体变量。字符串型数据转换成数值型数据,最好使用val函数。

但是,程序书写注意缩进以突出层次便于阅读。即:
Private Sub Command1_Click()
    Dim score As Single, rank As string, state As String

    score = Val(Text1.Text)
    If score > 85 Then
        rank = "1-10"
        state = "&Oacute;&Aring;&ETH;&atilde;"
    ElseIf score >= 75 Then
        rank = "11-20"
        state = "&Aacute;&frac14;"
    ElseIf score < 75 Then
        rank = "20-25"
        state = "&sup2;&icirc;"
    End If
    Text2.Text = rank
    Text3.Text = state
End Sub

更进一步,vb提供了标准的多分枝语句Select。使用后样式如下(因为声明的三个变量在过程中都只使用一次,故不再使用,而直接赋值):

Private Sub Command1_Click()
    Select Case Val(Text1.Text)
        Case Is > 85
            Text2.Text  = "1-10"
            Text3.Text = "&Oacute;&Aring;&ETH;&atilde;"
        Case Is >= 75
            Text2.Text  = "11-20"
            Text3.Text  = "&Aacute;&frac14;"
        Case Else
            Text2.Text  = "20-25"
           Text3.Text = "&sup2;&icirc;"
    End Select
    Text2.Text = rank
    Text3.Text = state
End Sub

8 楼


如果都像您这样助人为乐,中国实在太有前途了。
    今天还看锵锵三人行,他们说了一个例子。
    DVD正规超市里卖的,翻译那叫一个没水平,看得观众云里雾里。
    而在中国真正有翻译水准的,那就是网络上一些爱好这些,给广大网民提供无偿服务的字幕小组。全是自发的。可见中国的理想主义在网络上实现了。网民万岁!
    还是很感谢这位仁兄。

9 楼

score = Text1.Text  你的这个都到的答案是字符型的啊,使用val就是把你输入的字符识别为数值,不然你下面肯定永不了 的。。。。我的qq 7192493  ,我们撂下

我来回复

您尚未登录,请登录后再回复。点此登录或注册