使用DateAdd Excel VBA时溢出

我目前有一个Excel工作表,有一系列的date和一个单元格在不同的表格中,以及我们上次运行这个macros的date。

我需要编写一个macros来检查今天的date是否至less在我们上一次运行macros的那一天的32天之后。

如果是这样的话,我想用一系列datesearch工作表,并将date添加到date数组中。

我们添加的date代表每个在今天的date之前30天closuresn *,n从1到10。

所以基本上10个date都是今天之前的30天的倍数。

但是,这些date必须出现在上面提到的一系列date的工作表中,所以如果例如从今天减去30天给出的date在上述一系列date中不存在,则我们继续减去1天,直到find存在的date。

希望这是有道理的。 我明白这有点混乱,但我觉得我必须给出一些背景。

我的代码:

Sub date_diff() Dim todDate Dim dt Dim diff As Long Dim dates(0 To 9) As Date Dim i As Long todDate = Format(ActiveWorkbook.Sheets("Overview").Range("B6").Value, "mm/dd/yyyy") ' dt is the Date of last signaling dt = ActiveWorkbook.Sheets("Overview").Range("B5").Value diff = DateDiff("d", dt, todDate) Dim rng As Range Dim dtCell As Range Dim currDt If diff < 32 Then MsgBox "Wait " & (32 - diff) & " days" Else For i = 1 To 10 currDt = Format(DateAdd("d", 20, todDate), "mm/dd/yyyy") ---> OVERFLOW HERE Set rng = ActiveWorkbook.Sheets("US Stocks").Range("A:A") ' Find the day - Loop until you find one at least 30 days apart Do While rng.Find(What:=currDt) Is Nothing currDt = DateAdd("d", -1, currDt) Loop dates(i) = currDt MsgBox i Next i End If End Sub 

运行时错误“6”:溢出

我想这个错误是来自于我如何处理或如何在VBA中解释date。 查看溢出行的代码。 我对VBA很新,所以我仍然在学习这些微妙之处。 FYI,date为“短date”格式,例如1/13/15(mm / dd / yy)。