通过小时vba循环

我有两个date的string,我想循环的date小时。 我尝试了以下内容:

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 

我也尝试通过timevalue()replacefor循环中的timevalue() 。 最后,我希望我的j是30.(第一天15小时,第二天15)

使用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 

这样,您不必为每个循环创build一个新的Date ,并且您可以轻松地访问其他date格式(天,分,年…)