VB请人指教

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:03:50
Private Sub Command1_Click()
Dim X, Y, z, a, b As Double
X = Val(Text4.Text)
Y = Val(70)
z = Val(100)
a = 24
b = 27
If Val(Text4.Text) <= 1.5 Then
Label6.Caption = 0
ElseIf Val(Text4.Text) > 2 Then
Label6.Caption = X * a * b * Y
----ElseIf Val(Text4.Text) > 4.9 Then----
----X = X * Val(2)----
End If
End Sub
打星“-”号的不能实现,那位有办法,帮忙解决一下。

你写反了,由于一个数如果大于 4.9 ,那么也同时大于 2

所以如果 Val(Text4.Text) 的确大于 4.9 ,就直接满足 Val(Text4.Text) > 2 而执行 Label6.Caption = X * a * b * Y 语句了

所以应该把两个语句换一下即可:

If Val(Text4.Text) <= 1.5 Then
Label6.Caption = 0
ElseIf Val(Text4.Text) > 4.9 Then
X = X * Val(2)
ElseIf Val(Text4.Text) > 2 Then
Label6.Caption = X * a * b * Y
End If

ElseIf Val(Text4.Text) > 2 Then
Label6.Caption = X * a * b * Y
ElseIf Val(Text4.Text) > 4.9 Then

这2个重复范围 你改下上面的~
ElseIf Val(text4.Text) > 2 And Val(text4.Text) <= 4.9 Then

这是个分段函数,分为: <=1.5; (2,4.9]; >4.9三段。
你的“----ElseIf Val(Text4.Text) > 4.9 Then----
----X = X * Val(2)---- ”
无法实现是因为对一个大于4.9的数,也大于2,所以就执行了>2的那一段后结束了程序,后面的就无法执行,简言之就是条件重叠。
解决办法一:
把>2的判据改为:>2 AND <=4.9

ElseIf Val(Text4.Text) > 2 AND Val(Text4.Text)<=4.9 Then
Label6.Caption = X *