
Excel2007 VBA编程
SubGetFutureDate()DimvarDateAsVariant'显示InputBoxd对话框——确保输入的日期是明天的日期varDate=InputBox("...
Sub GetFutureDate()
Dim varDate As Variant
'显示InputBoxd对话框——确保输入的日期是明天的日期
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
这段是《Excel 2007与VBA编程:从入门到精通》上的例5.15,可是我在运行时,输入的今天日期之前的日期,却不显示“无效的日期,必须是今天以后的日期。”,都是显示有效输入。这是怎么回事?
谢谢! 展开
Dim varDate As Variant
'显示InputBoxd对话框——确保输入的日期是明天的日期
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
这段是《Excel 2007与VBA编程:从入门到精通》上的例5.15,可是我在运行时,输入的今天日期之前的日期,却不显示“无效的日期,必须是今天以后的日期。”,都是显示有效输入。这是怎么回事?
谢谢! 展开
2个回答
展开全部
Sub GetFutureDate()
Dim varDate As Variant
'显示InputBoxd对话框——确保输入的日期是明天的日期
varDate = InputBox("输入今天以后的日期", "输入日期", Date)
'确定用户输入的数据时日期
Select Case IsDate(varDate) '如果不是日期型数据,则返回给用户一个输入无效数据或者没有输入数据的提示
Case False:
Select Case varDate
Case ""
MsgBox "用户取消输入/没有输入"
Case Else
MsgBox "无效的输入"
End Select
Case True: '如果输入是日期,则确定该日期是未来的日期
'**************在这儿将变量转换成日期型
varDate = DateValue(varDate)
Select Case varDate
Case Is <= Date
MsgBox "无效的日期,必须是今天以后的日期。"
Case Is > Date
MsgBox varDate & " 是有效输入"
End Select
End Select
End Sub
因为在变量定义类型为Variant型,就跟Dim varDate 语句一样,类型不明确,用input获取值后变量类型并不是日期型,而是字符型,在与日期比较前必须转换成日期型。
Dim varDate As Variant
'显示InputBoxd对话框——确保输入的日期是明天的日期
varDate = InputBox("输入今天以后的日期", "输入日期", Date)
'确定用户输入的数据时日期
Select Case IsDate(varDate) '如果不是日期型数据,则返回给用户一个输入无效数据或者没有输入数据的提示
Case False:
Select Case varDate
Case ""
MsgBox "用户取消输入/没有输入"
Case Else
MsgBox "无效的输入"
End Select
Case True: '如果输入是日期,则确定该日期是未来的日期
'**************在这儿将变量转换成日期型
varDate = DateValue(varDate)
Select Case varDate
Case Is <= Date
MsgBox "无效的日期,必须是今天以后的日期。"
Case Is > Date
MsgBox varDate & " 是有效输入"
End Select
End Select
End Sub
因为在变量定义类型为Variant型,就跟Dim varDate 语句一样,类型不明确,用input获取值后变量类型并不是日期型,而是字符型,在与日期比较前必须转换成日期型。

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询