在VBA中解决DateAdd运行时错误
我一直试图解决在excel VBA中使用在VBA中解决DateAdd运行时错误,vba,excel,Vba,Excel,我一直试图解决在excel VBA中使用DateAdd的问题。我得到一个运行时错误6溢出(大多数情况下)或运行时错误11除零。我在代码中标记了运行时错误总是发生的位置。我尝试过更改变量类型,但不确定问题出在哪里。我从excel表格中读取的日期是日期格式(mm/dd/yy)。关于我为什么会在那一行出现错误,有什么建议吗 Sub date_diff() Dim todDate As Date Dim dt Dim diff As Long Dim dates(0 To
DateAdd
的问题。我得到一个运行时错误6溢出
(大多数情况下)或运行时错误11除零
。我在代码中标记了运行时错误总是发生的位置。我尝试过更改变量类型,但不确定问题出在哪里。我从excel表格中读取的日期是日期
格式(mm/dd/yy)。关于我为什么会在那一行出现错误,有什么建议吗
Sub date_diff()
Dim todDate As Date
Dim dt
Dim diff As Long
Dim dates(0 To 9) As Date
Dim i As Long
todDate = ActiveWorkbook.Sheets("Investing - Overview").Range("B6").Value
' dt is the Date of last signaling
dt = ActiveWorkbook.Sheets("Investing - Overview").Range("B5").Value
diff = DateDiff("d", dt, todDate)
Dim rng As Range
Dim dtCell As Range
Dim currDt As Date
If diff < 32 Then
MsgBox "Wait " & (32 - diff) & " days"
Else
For i = 1 To 10
currDt = DateAdd("d", 20, todDate) -> RUNTIME ERROR HERE
Set rng = ActiveWorkbook.Sheets("US Stocks").Range("A5").End(xlDown)
dates(i) = currDt
MsgBox i
Next i
End If
End Sub
子日期_diff()
日期为日期
暗dt
暗差与长
变暗日期(0到9)作为日期
我想我会坚持多久
todDate=ActiveWorkbook.Sheets(“投资-概述”).范围(“B6”).值
‘dt是最后一次发信号的日期
dt=ActiveWorkbook.Sheets(“投资-概述”).范围(“B5”).值
diff=DateDiff(“d”,dt,todDate)
变暗rng As范围
暗淡的DTAS范围
暗电流作为日期
如果差值<32,则
MsgBox“等待”和(32天差异)和“天数”
其他的
对于i=1到10
currDt=DateAdd(“d”,20,todDate)->此处出现运行时错误
Set rng=ActiveWorkbook.Sheets(“美国股票”).Range(“A5”).End(xlDown)
日期(i)=当前日期
MsgBox i
接下来我
如果结束
端接头
我会检查您的数据及其格式,这对我来说很好。确保它们是相同的。可能是不相关的,但是为什么dt
声明为隐式变体呢?如果它应该是一个日期,则将其设置为日期
。您是否尝试过将currDt=DateAdd(“d”,20,todDate)
替换为currDt=20+todDate
?(这可能有助于识别问题)将脚本运行到该行,然后将鼠标悬停在部件上,查看错误是否出现在todDate或DateAdd中。否则,我在我的电脑上构建了它,没有任何问题。我刚刚使用MsgBox TypeName(currDt)和MsgBox TypeName(todDate)
进行了检查,它们确实是相同的数据类型。另外,执行currDt=20+todDate
产生运行时错误:11除以零