VB select case语句中遇到的问题。求教高手

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:15:09
Dim L As Double, H0 As Double
Private Sub Command1_Click()
L = Val(Text1.Text)
Select Case L
Case L < 17000
H0 = (L / 17) / 2
Case 17000 < L < 23000
H0 = (L / 18) / 2
Case L = 23000
H0 = (L / 19) / 2
Case Else
HO = (L / 20) / 2
End Select
Text2.Text = Str(HO)
End Sub
为什么这段程序不管输入什么数只有最后一句有效,就是只有HO=(L/20)/2作用。错在哪里了?本来刚学,求教高手。
楼下给的程序还是不行啊,运行的时候数只有大于23000后才显示正确,其他都显示0

这样改:
Dim L As Double, H0 As Double
Private Sub Command1_Click()
L = Val(Text1.Text)
Select Case L
Case Is < 17000
H0 = (L / 17) / 2
Case 23000
H0 = (L / 19) / 2
Case 17000 To 23000
H0 = (L / 18) / 2
Case Else
HO = (L / 20) / 2
End Select
Text2.Text = Str(H0) '这里是H0(数字),不是HO(字母),而你写成字母了。这就是不强制变量声明造成的。出了错都看不出来。
End Sub

Dim L As Double, H0 As Double
Private Sub Command1_Click()
L = Val(Text1.Text)
Select Case L
Case is < 17000
H0 = (L / 17) / 2
Case 17000 to 23000
H0 = (L / 18) / 2
Case is = 23000
H0 = (L / 19) / 2
Case Else
HO = (L / 20) / 2
End Select
Text2.Text = Str(HO)
End Sub

你的 Case 17000 < L < 23000 有错,
这实际是判断 17000 < L < 23000 是否成立的真假关系,判断结果的返回值只有两种,即:False和 True,换算为数值只有 0 和 -1 两种情况。

改为:
Case Is > 17000 Or L < 23000
或者:
Case 17000 To