我试图做这样的事情

sub test()
a=inputbox("value1:")
b=inputbox("value2:")
c=inputbox("value3:")

  if a<b and a>c then

    msgbox(a)

    else
      msgbox(b)
      msgbox(c)
   end if

end sub


当我为a输入5,为b为10,为c为2时,条件应该返回TRUE,然后显示带有a的消息框,但是它返回FALSE并显示带有b和c的消息框。我认为解决方案非常简单,但我无法弄清楚。

非常感谢

最佳答案

发生这种情况是因为VBA将您的输入视为字符串。只需将CInt()或CLng()添加到变量即可,以使Excel知道它们是数字。

Sub test()

a = CInt(InputBox("value1:"))
b = CInt(InputBox("value2:"))
c = CInt(InputBox("value3:"))

  If a < b And a > c Then
    MsgBox (a)

    Else
      MsgBox (b)
      MsgBox (c)
   End If
End Sub

10-06 01:30