在VBa中使用DateAdd时出现溢出或被零除运行时错误
在VBA中使用在VBa中使用DateAdd时出现溢出或被零除运行时错误,vba,excel,Vba,Excel,在VBA中使用DateAdd时出现以下错误。 运行时错误:11除零或运行时错误:6溢出(更常见) todDate从格式为短日期格式(mm/dd/yy)的单元格(“B6”)中检索。我还使用了不包含格式的函数来计算currDt,但也没有成功。知道为什么会这样吗 谢谢您需要向dateadd函数传递一个日期。Format将返回一个字符串,您也在不必要地重复该格式。试试下面的方法 Dim todDate As Date Dim currDt As string todDate = ActiveWorkb
DateAdd
时出现以下错误。
运行时错误:11除零
或运行时错误:6溢出
(更常见)
todDate
从格式为短日期格式(mm/dd/yy)
的单元格(“B6”)中检索。我还使用了不包含格式的函数来计算currDt,但也没有成功。知道为什么会这样吗
谢谢您需要向dateadd函数传递一个日期。Format将返回一个字符串,您也在不必要地重复该格式。试试下面的方法
Dim todDate As Date
Dim currDt As string
todDate = ActiveWorkbook.Sheets("Sheet1").Range("B6").Value
currDt = Format(DateAdd("d", 20, todDate), "mm/dd/yyyy")
Format函数返回一个字符串,而不是一个日期。我可以简单地执行以下操作吗?currDt=DateAdd(“d”,20,todDate)
,并将Dim currDt作为字符串
?然后我必须将DateAdd
与currDt
一起使用,因此我认为将其作为日期
而不是字符串
@user3501476会更容易。这取决于用途。实际上,我会以日期格式存储日期,直到我需要用户查看它,然后,每次您希望使单元格/消息框等于格式为mmddyyyy的日期时,都要转换日期。这有意义吗?简言之,将其作为日期保存(格式不重要),直到您需要打印它为止(演示非常重要)@user3501476除非我误解了,否则您是否试图用“格式(…)”指定日期已采用的格式?@user3501476如果是后者,Jean-François Corbett在这里的回答会引起一些有趣的阅读。基本上,正确地读入变量并将其存储为日期,然后以您喜欢的格式打印。我明白了!那么,当我删除所有格式并使用每个变量时,是否知道为什么会出现运行时错误是否可以作为日期
?
Dim todDate As Date
Dim currDt As string
todDate = ActiveWorkbook.Sheets("Sheet1").Range("B6").Value
currDt = Format(DateAdd("d", 20, todDate), "mm/dd/yyyy")