循环通过小时vba

时间:2016-01-15 08:32:18

标签: excel vba excel-vba

我有两个日期字符串,我想循环播放日期的小时数。我尝试了以下方法:

strStart = "15-01-2016 09:00"
strEnd = "16-01-2016 15:00"
j=0

for i = cdate(strStart) to cdate(strEnd)
    msgbox(i)
    j=j+1
next i

我还尝试用cdate()替换for循环中的timevalue()。最后,我希望我的j为30.(第一天15小时,第二天15小时)

1 个答案:

答案 0 :(得分:3)

使用DateAdd - 和DateDiff - 功能:

dateStart = cDate(strStart)
dateEnd = cDate(strEnd)
j = 0
While DateDiff("h", dateStart, dateEnd) > 0
    j=j+1
    dateStart = DateAdd("h", 1, dateStart)
Wend

这样,您就不必为每个循环创建新的Date,并且您可以轻松访问其他日期格式(天,分钟,年......)