楼主: gaotao0727
1743 1

[问答] Excel 2007 VBA的一个关于时间的选择分支,求解答 [推广有奖]

  • 1关注
  • 10粉丝

已卖:67份资源

副教授

79%

还不是VIP/贵宾

-

威望
0
论坛币
545 个
通用积分
11.1290
学术水平
18 点
热心指数
18 点
信用等级
12 点
经验
27715 点
帖子
873
精华
0
在线时间
855 小时
注册时间
2011-8-8
最后登录
2025-9-11

楼主
gaotao0727 发表于 2012-1-19 14:23:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
刚接触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这个分支,我用单步执行也证明了确实是走了这个分支,哪位大侠可以指点一下为什么会这样呢,谢谢~~~~
二维码

扫码加我 拉你入群

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

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

关键词:Excel 2007 EXCEL xcel exce VBA 对话框 Excel False 程序 用户

衣带渐宽终不悔,为伊消得人憔悴~~

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 21:58