全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
1700 1
2012-01-19
刚接触VBA不长时间,碰到一个奇怪问题,如下是程序:

Sub inputbox输入日期验证()
Dim varDate As Variant
'显示inputbox对话框-确保输入的日期是明天的日期
varDate = InputBox("输入今天以后的日期:", "输入日期", Date + 1)
'确定用户输入的数据是日期
Select Case IsDate(varDate)
'如果不是日期型数据,则给出一个数据无效或者没有输入数据的提示
Case False:
  Select Case varDate
  Case ""
    MsgBox "用户取消了输入或者没有输入"
  Case Else
    MsgBox "无效的输入"
  End Select
Case True:
'如果输入是日期,则确定该日期是未来的日期
  Select Case varDate
  Case Is <= Date
    MsgBox "无效的日期,必须是今天以后的日期"
  Case Is > Date
    MsgBox varDate & "是有效输入"
  End Select
End Select
End Sub

当输入框我输入2012-1-12时(今天是2012-1-19),程序却走Case Is > Date这个分支,我用单步执行也证明了确实是走了这个分支,哪位大侠可以指点一下为什么会这样呢,谢谢~~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-10-20 22:56:00
试试如下修改:在Case True: 后面的那句Select Case CDate(varDate),
将其改成Select Case CDate(varDate),经过Inputbox后,varDate是个字符串,要将其用CDate()函数转换成日期的数值,才能与“Date”进行数值比大小。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群