VBA不能从date中减去天数
我想要比现在更早的4天。 这是我的代码
Sub calcdate() Dim nDateTime, oDateTime As Date nDateTime = Format(Now, "YYMMDD") oDateTime = Format(DateAdd("d", -4, nDateTime), "YYMMDD") MsgBox ("Today is " & nDateTime & " And OldDate is " & oDateTime) End Sub
但是输出是'今天是170604和OldDate是02-10-3734'
我试图做到这一点没有DateAdd
nDateTime = Format(Now, "YYMMDD") oDateTime = nDateTime - 4
*输出是'今天是170604和OldDate是170604'
我尝试了这些改变
nDateTime = Format(Now, "YYMMDD") oDateTime = DateAdd("d", -4, nDateTime)
*输出是'今天是170604和OldDate是31-01-2367'
nDateTime = Format(Now, "YY-MM-DD") oDateTime = Format(DateAdd("d", -4, nDateTime), "YY-MM-DD")
*输出是'今天是17-06-04和OldDate是04-06-2013'
所以它似乎在这里是减去几年,虽然我把“d”。
我试过的最后一件事:
nDateTime = Format(Now, "DD-MM-YY") oDateTime = Format(DateAdd("d", -4, nDateTime), "DD-MM-YY")
*输出是'今天是04-06-17和OldDate是31-05-2017'我想这个date,格式170531,也为什么它给了我2017年,而我只select格式YY?
格式创build一个string,所以你不能再明智地进行计算。 事后做格式化:
Dim nDateTime As Date, oDateTime As Date nDateTime = Now oDateTime = nDateTime - 4 MsgBox "Today is " & Format(nDateTime, "YYMMDD") & " And OldDate is " & Format(oDateTime, "YYMMDD")
此外,您需要为每个variables声明variablestypes,就像我所做的那样。
因为格式(现在,“YYMMDD”)结果是string
Dim myDate As Date Dim nDatetime As String, oDateTime As String myDate = Now nDatetime = Format(myDate, "yymmdd") oDateTime = Format(DateAdd("d", -4, myDate), "YY-MM-DD")