关于VB重的elseif语句

昨天刚接触vb很多不懂

我写了这样一段代码

a=inputbox("输入一个数")
a=int(a)
if a=0 then
msgbox"zero"
elseif 1<a<10 then
msgbox"one digit"
elseif 9<a and a<100 then
msgbox"two digits"
else
msgbox"wrong"
end if

输入0 和一位数的时候还好
但输入两位数的时候,却还是输出一位数的结果

即,
输入0,输出“zero”
输入9,输出“one digit”
输入78,还是输出“one digit”
是什么原因?

第1个回答  推荐于2016-11-12
大于又小于的判断要用 and 连接 的

Private Sub Form_Click()
a = InputBox("输入一个数")
a = Int(a)
If a = 0 Then
MsgBox "zero"
ElseIf a >= 1 And a < 10 Then
MsgBox "one digit"
ElseIf a >= 10 And a < 100 Then
MsgBox "two digits"
Else
MsgBox "wrong"
End If

End Sub

建议这种情况使用select case
Private Sub Form_Click()
a = InputBox("输入一个数")
a = Int(a)
Select Case a
Case 0
MsgBox "zero"
Case 1 To 9
MsgBox "one digit"
Case 10 To 99
MsgBox "two digits"
Case Else
MsgBox "wrong"
End Select
End Sub

或者直接可以这样写

Private Sub Form_Click()
Select Case InputBox("输入一个数")
Case 0
MsgBox "zero"
Case 1 To 9
MsgBox "one digit"
Case 10 To 99
MsgBox "two digits"
Case Else
MsgBox "wrong"
End Select
End Sub本回答被提问者采纳
第2个回答  2007-12-30
没有1<a<10这种判断,建议改成a>1 and a<10

如果要简单,可以改成:
dim a
dim b=Array("Zero","One digital","Two digitals","wrong")
a = InputBox("输入一个数")
if int(a)<>"0" then a=Len(int(a))
if a>2 then a=3
msgbox b[a]
第3个回答  2019-08-15
private
sub
form_load()
text1.text
=
1111
text2.text
=
1111
end
sub
private
sub
command1_click()
if
text1.text
=
1111
then
text1.text
=
2222
text2.text
=
2222
elseif
text1.text
=
2222
then
text1.text
=
3333
text2.text
=
3333
elseif
text1.text
=
3333
then
text1.text
=
1111
text2.text
=
1111
end
if
end
sub
用if
……else
……完全能解决你的问题,楼上几位都行的,但是如果你值太多,建议你用select
case语句,更简洁。
private
sub
form_load()
text1.text
=
1111
text2.text
=
1111
end
sub
private
sub
command1_click()
select
case
text1.text
case
1111
text1.text
=
2222
text2.text
=
2222
case
2222
text1.text
=
3333
text2.text
=
3333
case
3333
text1.text
=
1111
text2.text
=
1111
end
select
end
sub
第4个回答  2020-09-05
没有1<a<10这种判断,建议改成a>1
and
a<10
如果要简单,可以改成:
dim
a
dim
b=Array("Zero","One
digital","Two
digitals","wrong")
a
=
InputBox("输入一个数")
if
int(a)<>"0"
then
a=Len(int(a))
if
a>2
then
a=3
msgbox
b[a]
第5个回答  2007-12-30
1<a<10 是什么语法?

关于VB重的elseif语句
Private Sub Form_Click()a = InputBox("输入一个数")a = Int(a)If a = 0 Then MsgBox "zero"ElseIf a >= 1 And a < 10 Then MsgBox "one digit"ElseIf a >= 10 And a < 100 Then MsgBox "two digits"Else MsgBox "wrong"End If End Sub 建议这种情况使用select case Private ...

关于VB elseif 语句的问题
当处理VB中的条件判断时,关于`elseif`语句的使用,可能会引起一些混淆。原始代码中的条件分支结构使用了`If...ElseIf...Else`,而在另一种建议的代码中,改用了`Select Case`结构。两者在功能上相似,但`Select Case`提供了更直观的层次和简洁性。在`Private Sub Command1_Click()`中,当用户输...

VB中的elseif的用法,哪位高手能举个例子并解释一下,谢谢了!
vbIf 条件1 Then ' 如果条件1成立,执行语句块1 语句块1ElseIf 条件2 Then ' 否则,如果条件2成立,执行语句块2 语句块2ElseIf 条件3 Then ' 以此类推,直到条件3 语句块3Else ' 如果所有条件都不成立,执行Else后的语句块 语句块4End If值得注意的是,使用规则如下...

vb里elseif什么意思
执行语句 end if 就是说,这个elseif是执行if判断为非的时候再进行下一步判断用的,可以有多个elseif

vb关于else和If
n=\/\/输入的值 if n=1 then \/\/ 如果n等于1的时候 msgbox "n为1"else if n=2 then \/\/ 如果n等于2的时候 msgbox "n为2"else if n=3 then \/\/如果n等于3的时候 msgbox "n为3'else msgbox "n为别的"end if \/\/判断结束

vb--if else 语法
if=如果 then=然后 else=否则 end if=结束 基本上你想包几层 if then else 都可以,只是你要搞清楚自己在写什麼。If <判断式> Then <程式码片断> If <判断式> Then <程式码片段> If <判断式> Then <程式码片段> Else End If Else End If <程式码片断> Else <程式码片断> If <判断...

vbifelse语句
VB是一种面向对象的编程语言,用于Windows系统的应用开发。在VB中,我们经常使用If...Else语句进行条件判断,这是编程中非常基础且重要的部分。以下是关于VB中If...Else语句的基本结构和详细解释。详细解释:基本结构:VB中的If...Else语句主要由三个部分构成:条件判断部分,满足条件的执行部分,以及不...

vbifelse用法,
详细解释如下:一、基本结构 VB中的If Else结构是基本的条件判断语句,用于根据不同的条件执行不同的操作。其基本结构如下:vbscript If 条件 Then ' 条件为真时执行的代码 Else ' 条件为假时执行的代码 End If 这种结构是最基础的,只有两种分支情况。如果需要根据更多的条件进行判断,可以使用嵌套的...

vb if else 用法,
这是通过`If`语句实现的:If rs.recordcount > 0 Then MsgBox "该题已做", vbExclamation, "提示"End If 如果没有记录(rs.recordcount <= 0),则`Else`部分的代码将不会执行,程序会直接跳过这个判断。这样,`If...Else`结构帮助你有效地控制程序流程,确保在特定条件满足时执行相应的操作。

VB中的elseif的用法,哪位高手能举个例子并解释一下,谢谢了!
3. If···Then···ElseIf···End If 是 VB 中的块结构条件语句,主要用来针对不同的情况,让应用程序做出不同的反应。语句功能如下:If 假设情况1 Then 假设情况一成立时执行的语句块1 〔ElseIF 假设情况2 Then 假设情况二成立时执行的语句块2〕〔ElseIf 假设情况3 Then 假设情况三成立时...

相似回答