datediff函数不会返回正确的值。我只是想知道几个月之间的日子差异:2014年1月1日(开始日期)和30/03/2014(结束日期)
我测试过的代码:
Dim date1 as date
dim date2 as date
dim test as long
date1 = "1/03/2014"
date2 = "30/03/2014"
test = datediff("d", date1 , date2)
msgbox test
上面的代码返回86 n,而不是29 但是如果我把2014年1月1日(开始日期)和2014年1月30日(结束日期)放在一起,结果是29天。
我如何获得正确的值(在这种情况下(3月),29天)?
答案 0 :(得分:2)
使用
DateSerial(2014, 3,1)
和DateSerial(2014, 3,30)
设置日期。通过使用字符串,字符串被解释为日期,3月1日被解释为1月3日。月份和日期都会切换。
跟进你的评论,一个简单的转换用于你的文本框而没有任何有效性测试:
strDate = "1/30/2014" 'as an example of the value coming from your TextBox
dateParts = split(strDate, "/") 'returns the date parts an array (zero based)
date1 = dateSerial(datePart(2), datePart(1), datePart(0))
答案 1 :(得分:0)
不要使用字符串并允许VBA尝试将它们解释为日期 - 使用DateSerial并具体说明:
date1 = DateSerial(2014, 3, 1)
date2 = DateSerial(2014, 3, 30)
答案 2 :(得分:-2)
试试这个:
Dim date1 as date
dim date2 as date
dim test as long
date1 = "1/03/2014"
date2 = "30/03/2014"
test = datediff("y", date1 , date2)
msgbox test