vb中的Select Case 语句只能有一条吗 我做一个关于土地评价的软件,用到Select Case 语句判断多个指标不同范围下所处的级别,然后再根据各水平综合计算,但现在多个Select Case 语句块一起运行出现错误,而单一一个Select Case 是可以的。想请问大家一下是什么原因?非常期待各位朋友的解答,赐教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,是运行时总是说调试有误啊,我的代码有8块,前两块如下:请这位朋友麻烦看一下,万分感谢!Select Case phtempCase Is > 8.5uph(6) = 1uph(1) = 0uph(2) = 0uph(3) = 0uph(4) = 0uph(5) = 0Case Is > 7.5uph(4) = Abs(phtemp - 8.5) / Abs(7.5 - 8.5)uph(5) = Abs(phtemp - 7.5) / Abs(7.5 - 8.5)uph(1) = 0uph(2) = 0uph(3) =0uph(6) = 0Case Is > 6.5uph(3) = Abs(phtemp - 7.5) / Abs(6.5 - 7.5)uph(4) = Abs(phtemp - 6.5) / Abs(6.5 - 7.5)uph(1) = 0uph(2) = 0uph(5) = 0uphp(6) = 0Case Is > 5.5uph(2) = Abs(phtemp - 6.5) / Abs(5.5 - 6.5)uph(3) =Abs(phtemp - 5.5) / Abs(5.5 - 6.5)uph(1) = 0uph(4) = 0uph(5) = 0uph(6) = 0Case Is > 4.5uph(1) = Abs(phtemp - 5.5) / Abs(4.5 - 5.5)uph(2) = Abs(phtemp - 4.5) / Abs(4.5 - 5.5)uph(3) = 0uph(4) = 0uph(5) = 0uph(6) = 0Case Elseuph(1) = 1uph(2) = 0uph(3) = 0uph(4) = 0uph(5) = 0uph(6) = 0End Select 'ph识别Select Case catempCase Is > 15uca(6) = 1uca(1) = 0uca(2) = 0uca(3) = 0uca(4) = 0uca(5) = 0Case Is > 5uca(4) = Abs(catemp - 15) / Abs(15 - 5)uca(5) = Abs(catemp - 5) / Abs(15 - 5)uca(1) = 0uca(2) = 0uca(3) =0uca(6) = 0Case Is > 3uca(3) = Abs(catemp - 5) / Abs(5 - 3)uca(4) = Abs(catemp - 3) / Abs(5 - 3)uca(1) = 0uca(2) = 0uca(5) = 0uca(6) = 0Case Is > 1uca(2) = Abs(catemp - 3) / Abs(3 - 1)uca(3) = Abs(catemp - 1) / Abs(3 - 1)uca(1) = 0uca(4) = 0uca(5) = 0uca(6) = 0Case Is > 0.25uca(1) = Abs(catemp - 1) / Abs(1 - 0.25)uca(2) = Abs(catemp - 0.25) / Abs(1 - 0.25)uca(3) = 0uca(4) = 0uca(5) = 0uca(6) = 0Case Elseuca(1) = 1uca(2) = 0uca(3) = 0uca(4) = 0uca(5) = 0uca(6) = 0End Select 'ca识别Dim i As IntegerFor i = 1 To 6Print uph(i)Print uac(i)Next iEnd Sub 格式没问题,但:uphp(6) = 0 是不是uph(6) = 0之误?Print uac(i)是不是Print uca(i)之误? 这就能运行:Private Sub Form_Load()Form1.ShowDim phtemp, catemp As SingleDim uph(1 To 6)Dim uca(1 To 6)Randomizephtemp = 10 * Rndcatemp = 10 * RndSelect Case phtempCase Is > 8.5uph(6) = 1uph(1) = 0uph(2) = 0uph(3) = 0uph(4) = 0uph(5) = 0Case Is > 7.5uph(4) = Abs(phtemp - 8.5) / Abs(7.5 - 8.5)uph(5) = Abs(phtemp - 7.5) / Abs(7.5 - 8.5)uph(1) = 0uph(2) = 0uph(3) = 0uph(6) = 0Case Is > 6.5uph(3) = Abs(phtemp - 7.5) / Abs(6.5 - 7.5)uph(4) = Abs(phtemp - 6.5) / Abs(6.5 - 7.5)uph(1) = 0uph(2) = 0uph(5) = 0uph(6) = 0Case Is > 5.5uph(2) = Abs(phtemp - 6.5) / Abs(5.5 - 6.5)uph(3) = Abs(phtemp - 5.5) / Abs(5.5 - 6.5)uph(1) = 0uph(4) = 0uph(5) = 0uph(6) = 0Case Is > 4.5uph(1) = Abs(phtemp - 5.5) / Abs(4.5 - 5.5)uph(2) = Abs(phtemp - 4.5) / Abs(4.5 - 5.5)uph(3) = 0uph(4) = 0uph(5) = 0uph(6) = 0Case Elseuph(1) = 1uph(2) = 0uph(3) = 0uph(4) = 0uph(5) = 0uph(6) = 0End Select 'ph识别Select Case catempCase Is > 15uca(6) = 1uca(1) = 0uca(2) = 0uca(3) = 0uca(4) = 0uca(5) = 0Case Is > 5uca(4) = Abs(catemp - 15) / Abs(15 - 5)uca(5) = Abs(catemp - 5) / Abs(15 - 5)uca(1) = 0uca(2) = 0uca(3) = 0uca(6) = 0Case Is > 3uca(3) = Abs(catemp - 5) / Abs(5 - 3)uca(4) = Abs(catemp - 3) / Abs(5 - 3)uca(1) = 0uca(2) = 0uca(5) = 0uca(6) = 0Case Is > 1uca(2) = Abs(catemp - 3) / Abs(3 - 1)uca(3) = Abs(catemp - 1) / Abs(3 - 1)uca(1) = 0uca(4) = 0uca(5) = 0uca(6) = 0Case Is > 0.25uca(1) = Abs(catemp - 1) / Abs(1 - 0.25)uca(2) = Abs(catemp - 0.25) / Abs(1 - 0.25)uca(3) = 0uca(4) = 0uca(5) = 0uca(6) = 0Case Elseuca(1) = 1uca(2) = 0uca(3) = 0uca(4) = 0uca(5) = 0uca(6) = 0End Select 'ca识别Dim i As IntegerFor i = 1 To 6Print uph(i)Print uca(i)Next iEnd Sub 我也觉得是这个问题。楼主把代码贴出来后,我复制过去一试,就发现那两个地方不对。更改后完全正常。可惜不知道 ISP 那儿出了什么问题,无法回复~~~~~-_-! 晕Select语句的选项怎么能使条件判断语句?只能是:字符、数字 格式没问题,但: uphp(6) = 0 是不是uph(6) = 0之误? Print uac(i)是不是Print uca(i)之误? 如何通过编程,阅读邮件*.eml文件 根据此图应用什么控件合适??? 求救!时间的计算 HELP!!!1 如何判断一个窗口是否是隐藏状态,已经知道窗口句柄,不是自己的窗体!谢谢 vb6.0 如何使程序界面随屏目分辩率自动变化???? inet通过HTTP协议下载后文件大了几个字节,怎么解决? 如何用Netmeeting做二次开发,用VB如何调用其核心组件! 值怎么变了? VB-跪拜高手帮我解释一下这段程序,后天就要交毕业设计了 vb连接server2000数据库,访问数据时出现3001错误,为啥啊,急!
我的代码有8块,前两块如下:请这位朋友麻烦看一下,万分感谢!
Select Case phtemp
Case Is > 8.5
uph(6) = 1
uph(1) = 0
uph(2) = 0
uph(3) = 0
uph(4) = 0
uph(5) = 0Case Is > 7.5
uph(4) = Abs(phtemp - 8.5) / Abs(7.5 - 8.5)
uph(5) = Abs(phtemp - 7.5) / Abs(7.5 - 8.5)
uph(1) = 0
uph(2) = 0
uph(3) =0
uph(6) = 0Case Is > 6.5
uph(3) = Abs(phtemp - 7.5) / Abs(6.5 - 7.5)
uph(4) = Abs(phtemp - 6.5) / Abs(6.5 - 7.5)
uph(1) = 0
uph(2) = 0
uph(5) = 0
uphp(6) = 0
Case Is > 5.5
uph(2) = Abs(phtemp - 6.5) / Abs(5.5 - 6.5)
uph(3) =Abs(phtemp - 5.5) / Abs(5.5 - 6.5)
uph(1) = 0
uph(4) = 0
uph(5) = 0
uph(6) = 0
Case Is > 4.5
uph(1) = Abs(phtemp - 5.5) / Abs(4.5 - 5.5)
uph(2) = Abs(phtemp - 4.5) / Abs(4.5 - 5.5)
uph(3) = 0
uph(4) = 0
uph(5) = 0
uph(6) = 0
Case Else
uph(1) = 1
uph(2) = 0
uph(3) = 0
uph(4) = 0
uph(5) = 0
uph(6) = 0
End Select 'ph识别Select Case catemp
Case Is > 15
uca(6) = 1
uca(1) = 0
uca(2) = 0
uca(3) = 0
uca(4) = 0
uca(5) = 0Case Is > 5
uca(4) = Abs(catemp - 15) / Abs(15 - 5)
uca(5) = Abs(catemp - 5) / Abs(15 - 5)
uca(1) = 0
uca(2) = 0
uca(3) =0
uca(6) = 0Case Is > 3
uca(3) = Abs(catemp - 5) / Abs(5 - 3)
uca(4) = Abs(catemp - 3) / Abs(5 - 3)
uca(1) = 0
uca(2) = 0
uca(5) = 0
uca(6) = 0
Case Is > 1
uca(2) = Abs(catemp - 3) / Abs(3 - 1)
uca(3) = Abs(catemp - 1) / Abs(3 - 1)
uca(1) = 0
uca(4) = 0
uca(5) = 0
uca(6) = 0
Case Is > 0.25
uca(1) = Abs(catemp - 1) / Abs(1 - 0.25)
uca(2) = Abs(catemp - 0.25) / Abs(1 - 0.25)
uca(3) = 0
uca(4) = 0
uca(5) = 0
uca(6) = 0
Case Else
uca(1) = 1
uca(2) = 0
uca(3) = 0
uca(4) = 0
uca(5) = 0
uca(6) = 0
End Select 'ca识别Dim i As Integer
For i = 1 To 6
Print uph(i)
Print uac(i)
Next iEnd Sub
uphp(6) = 0 是不是uph(6) = 0之误?Print uac(i)是不是Print uca(i)之误?
Private Sub Form_Load()
Form1.Show
Dim phtemp, catemp As SingleDim uph(1 To 6)
Dim uca(1 To 6)
Randomize
phtemp = 10 * Rnd
catemp = 10 * RndSelect Case phtemp
Case Is > 8.5
uph(6) = 1
uph(1) = 0
uph(2) = 0
uph(3) = 0
uph(4) = 0
uph(5) = 0Case Is > 7.5
uph(4) = Abs(phtemp - 8.5) / Abs(7.5 - 8.5)
uph(5) = Abs(phtemp - 7.5) / Abs(7.5 - 8.5)
uph(1) = 0
uph(2) = 0
uph(3) = 0
uph(6) = 0Case Is > 6.5
uph(3) = Abs(phtemp - 7.5) / Abs(6.5 - 7.5)
uph(4) = Abs(phtemp - 6.5) / Abs(6.5 - 7.5)
uph(1) = 0
uph(2) = 0
uph(5) = 0
uph(6) = 0
Case Is > 5.5
uph(2) = Abs(phtemp - 6.5) / Abs(5.5 - 6.5)
uph(3) = Abs(phtemp - 5.5) / Abs(5.5 - 6.5)
uph(1) = 0
uph(4) = 0
uph(5) = 0
uph(6) = 0
Case Is > 4.5
uph(1) = Abs(phtemp - 5.5) / Abs(4.5 - 5.5)
uph(2) = Abs(phtemp - 4.5) / Abs(4.5 - 5.5)
uph(3) = 0
uph(4) = 0
uph(5) = 0
uph(6) = 0
Case Else
uph(1) = 1
uph(2) = 0
uph(3) = 0
uph(4) = 0
uph(5) = 0
uph(6) = 0
End Select 'ph识别Select Case catemp
Case Is > 15
uca(6) = 1
uca(1) = 0
uca(2) = 0
uca(3) = 0
uca(4) = 0
uca(5) = 0Case Is > 5
uca(4) = Abs(catemp - 15) / Abs(15 - 5)
uca(5) = Abs(catemp - 5) / Abs(15 - 5)
uca(1) = 0
uca(2) = 0
uca(3) = 0
uca(6) = 0Case Is > 3
uca(3) = Abs(catemp - 5) / Abs(5 - 3)
uca(4) = Abs(catemp - 3) / Abs(5 - 3)
uca(1) = 0
uca(2) = 0
uca(5) = 0
uca(6) = 0
Case Is > 1
uca(2) = Abs(catemp - 3) / Abs(3 - 1)
uca(3) = Abs(catemp - 1) / Abs(3 - 1)
uca(1) = 0
uca(4) = 0
uca(5) = 0
uca(6) = 0
Case Is > 0.25
uca(1) = Abs(catemp - 1) / Abs(1 - 0.25)
uca(2) = Abs(catemp - 0.25) / Abs(1 - 0.25)
uca(3) = 0
uca(4) = 0
uca(5) = 0
uca(6) = 0
Case Else
uca(1) = 1
uca(2) = 0
uca(3) = 0
uca(4) = 0
uca(5) = 0
uca(6) = 0
End Select 'ca识别Dim i As Integer
For i = 1 To 6
Print uph(i)
Print uca(i)
Next i
End Sub
我也觉得是这个问题。
楼主把代码贴出来后,我复制过去一试,就发现那两个地方不对。
更改后完全正常。可惜不知道 ISP 那儿出了什么问题,无法回复~~~~~
-_-!
Select语句的选项怎么能使条件判断语句?只能是:字符、数字
uphp(6) = 0 是不是uph(6) = 0之误? Print uac(i)是不是Print uca(i)之误?