petty 发表于 2004-6-28 15:38:00

if 命令和 case 命令,为什么会这样?

xx=100


if xx=100 then


....


endif


select case xx


case 100


...


end select


为什么我将xx设定为100,用if 命令不能执行,用case 命令能执行,何也?两者到底有什么不同之外?

雪山飞狐_lzh 发表于 2004-6-28 15:59:00

完整一点的代码可以传上么


我这样可以


Sub h()


Dim a As String


a = 100<BR>If a = 100 Then<BR>MsgBox "True1"<BR>End If


End Sub<BR>

mikewolf2k 发表于 2004-6-28 19:15:00

对啊,请贴全一点的代码。这一段是没有问题的。


另外,end if中应该有一个空格的。

petty 发表于 2004-6-28 20:28:00

完整的代码太长了,传上是没问题,要找出也很困难。对不起上面的贴子说错了,不是上面所说而是:


上面两个都能执行。


但xx=100


select case xx


case xx=100


......


end select 不能执行


将case xx=100 改为case 100就得执行,但没提示有语法错误。何也??


难道case xx=100是精确等于吗?要全部匹配还是什么的。

雪山飞狐_lzh 发表于 2004-6-28 20:38:00

select case xx


case xx=100


......


end select


语法错


应该是


select case xx


case 100


......


end select


case x=100


相当于case True(X=100时)

petty 发表于 2004-6-28 20:48:00

很感谢,另外我还想问一下


case xx=100


其中xx是字符还是数值。


如果dim xx as interage ‘定义xx为整形数


xx=100


case xx=100 能执行下面的语句吗?如果不定为xx为定整形数,则xx=100哪么xx是字符串还是数值?

雪山飞狐_lzh 发表于 2004-6-28 20:51:00

VBA的Case语句的参数是整型


默认的,它会把能够转化为整型的数据转化为整型
页: [1]
查看完整版本: if 命令和 case 命令,为什么会这样?