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
If a = 100 Then
MsgBox "True1"
End If
End Sub

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 命令,为什么会这样?