我一直在尝试使用If ... Then
条件执行VBScript。
这就是我要展示的内容。
我必须显示3条消息:一条用于最高号码,第二条用于最低号码,第三条用于显示消息"The numbers are the same"
(如果它们全部相等)。
我需要让三个弹出窗口一个接一个地出现。
我试过这个:
Option explicit
Dim Gn, Sn, En
Gn= inputbox("enter first number")
Sn= inputbox("enter second number")
En =inputbox("enter third number")
If ((Gn > Sn) AND (Gn > En)) then
Msgbox ("The Highest Number Is =" & Gn)
End if
If ((En =Gn) AND (En =Sn)) then
Msgbox ("The Numbers Are Equal =" & En)
End if
If ((Sn<Gn) AND (Sn <En))then
Msgbox ("The Lowest Number Is =" & Sn)
End If
如果第一个变量的值满足所有条件,则此代码会成功执行,但仍然存在问题。它不会逐个显示三条消息。例如,如果Gn
&gt; En
和Sn
,然后成功运行。
还有另一种方法,但它太冗长而复杂。
Option explicit
Dim Gn, Sn, En
Gn= inputbox("enter first number")
Sn= inputbox("enter second number")
En =inputbox("enter third number")
If ((Gn > Sn) AND(Sn > En ) AND (Gn > En)) then
Msgbox ("The Highest number is = " & Gn & "The lowest number is = " & Sn & "The numbers are not equal" )
end if
我将不得不尝试所有的排列和组合,以使上述方法起作用。
请帮忙!
答案 0 :(得分:1)
如果您希望消息框始终,请不要将它们放在If
语句中。首先确定您的最小/最大值,然后无条件地显示您的消息框。
如果你创建了几个函数(Min
和Max
)来帮助你,那会更容易:
Function Min(x, y)
If x < y Then Min = x Else Min = y
End Function
Function Max(x, y)
If x > y Then Max = x Else Max = y
End Function
然后您可以轻松确定最小和最大数字,以及所有三个数字是否相等:
intMin = Min(Min(Gn, Sn), En)
intMax = Max(Max(Gn, Sn), En)
fEqual = (intMin = intMax)
MsgBox "Highest number is " & intMax
MsgBox "Lowest number is " & intMin
If fEqual Then MsgBox "All three numbers are equal"
最后,您需要确保将输入视为数字而不是字符串。 InputBox()
将返回一个字符串,因此您需要将该值转换为数字,否则您的比较将无法正确显示。
如果您想假设输入数字,只需转换返回值:
' Assume integers are being entered. If floating point, use CDbl() instead.
Gn = CLng(inputbox("enter first number"))
否则,您可以测试返回值以查看它是否为数字,然后正确转换它:
Gn = inputbox("enter first number")
If Not IsNumeric(Gn) Then
MsgBox Gn & " is not numeric."
Else
Gn = CLng(Gn)
End If