当在VBa中使用DateAdd时,溢出或被零运行时错误划分

在VBA中使用DateAdd时出现以下错误。 Runtime error: 11 Division by ZeroRuntime error: 6 Overflow Runtime error: 11 Division by Zero Runtime error: 6 Overflow (更经常)

 Dim todDate As Date Dim currDt As Date todDate = Format(ActiveWorkbook.Sheets("Sheet1").Range("B6").Value, "mm/dd/yyyy") currDt = Format(DateAdd("d", 20, todDate), "mm/dd/yyyy") ----> Runtime Error HERE 

todDate从格式为short date format (mm/dd/yy)的单元格(“B6”)中检索。 我也干了不使用Format函数来计算currDt,但也没有成功。 任何想法,为什么这可能是?

谢谢

您需要将date传递给dateadd函数。 格式将返回一个string,你也不必要地重复格式。 试试下面。

 Dim todDate As Date Dim currDt As string todDate = ActiveWorkbook.Sheets("Sheet1").Range("B6").Value currDt = Format(DateAdd("d", 20, todDate), "mm/dd/yyyy")