代码如下
Private Sub Command1_Click()
Dim sum As Single, a As Single
a = Text1
If a >= 2000 Then
sum = a + a * 0.1
Else
sum = a + 1
Text2.Text = sum
End If
End Sub
这段代码 ,点击命令按钮,文本框1值输入大于2000,文本框2无法输出?

解决方案 »

  1.   

    你只在 Else 分支中进行了输出啊!
    把语句 Text2.Text = sum 移到 End If 后面。
      

  2.   

    能有才怪呢,也不看看Text2.Text = sum在哪里。改成下面的:
    Private Sub Command1_Click()
    Dim sum As Single, a As Single
    a = csng(Text1.text)
    If a >= 2000 Then
    sum = a + a * 0.1
    Else
    sum = a + 1
    End If
    Text2.Text = sum
    End Sub
      

  3.   

    如果无论输入的是多少,都要在Text2输出一个数据的话,
    那是你的代码有逻辑错误,要把Text2.Text = sum移到 End if后面才对。
      

  4.   

      谢谢各位,明白了,我把代码简化了下
    Private Sub Command1_Click()
    Dim a As Single
    a = Text1
    If a > =2000 Then
    a = a + a * 0.1
    Else
    a = a + 1
    End If
    Text2 = a
    End Sub
    还有个问题 a = Text1与a = Text1.text 是同样的含义吗?
      

  5.   

    文本框的“默认属性”就是 Text属性。
    因此:
    a = Text1
    a = Text1.Text 
    这两句代码是完全相同的含义。不过,我觉得还是写上完整的“对象.属性”比较好,一看就明白操作的是哪个属性,
     用不着去“想一下应该是操作的什么属性”。
      

  6.   

      恩,谢谢!有时会遇到a=Val(text1.text),为什么不用a=text1.text呢?
      

  7.   

    val()是将text1.text的内容转换为数值型,比如你输入:“456”,你定义的是single单精度型,避免误认为是字符串型引起类型不匹配的错误。我的理解,如有不妥,请指正。
      

  8.   

    当然无法输出,因为你输出的语句写在else分支里,当你输入2000,条件成立,就直接执行了if后的语句,if这个分支成立就结束if语句了。