使用dateadd

时间:2017-01-04 15:17:26

标签: vba excel-vba excel

我正在查看其他人写的有问题的代码(我无法联系他们,他们已经很久了)我发现代码因为dateadd而遇到麻烦。在线,我看的每个地方,都说dateadd的格式是(间隔,数字,日期)。它在此代码中写为(interval,date,date)。

更具体地说:

Dim UnixTime As String
Dim HumanTime As String
For i = 2 to 37
UnixTime = Sheets("Current Values").Cells(i, 4) 'cell(2, 4) is "12/31/2016  7:15:00 AM" without quotes
HumanTime = DateAdd("s", UnixTime, CDate("12/31/1969 08:00:00 PM"))

这段代码过去一直很有用,所以我从来没有理由去看它,但现在它只输出一个时间,没有附加日期。为了增加神秘感,在排除故障的过程中,它似乎神秘地开始工作。我并没有抱怨它有效,但下次它对我抱怨时,我想知道从哪里开始寻找。 vba如何将日期转换为数字?为此目的,是否有比dateadd更合适的功能?

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您的UnixTime是一个字符串,您还需要CDate

HumanTime = DateAdd("s", CDate(UnixTime), CDate("12/31/1969 08:00:00 PM"))

我同意共产国际的观点,最好将这些作为日期而不是字符串来处理。