从 ms excel 中的时间戳中减去分钟数

Subtracting minutes from a timestamp in msexcel

我正在从像 Tue Nov 06 07:33:00 UTC 2018 这样的格式的单元格中提取时间戳。现在,使用 vbscript 代码或 vba 我想从上面提到的代码中减去一些分钟时间戳。我怎样才能做到这一点?

split(split("Tue Nov 06 07:33:00 UTC 2018",":")(1),":")(0)

会给你自己的会议记录。您可以将拆分分配给数组,然后使用 `join

以正确的分钟数重新加入

大概是这样

Public Function addToTimeStamp(strTimeStamp As String, lngMinutes As Long) As String

Dim a() As String

a = Split(strTimeStamp, " ")
a(3) = DateAdd("n", lngMinutes, a(3))

addToTimeStamp = Join(a, " ")

End Function

无需进入 VBA,您可以将时间戳与日期分开,然后处理时间戳并相应地调整日期。

假设您的日期在 A 列中并且时间戳始终采用相同的结构,从第 2 行开始

所以首先创建一个只有时间戳的列,即 B 列:

=MID(A2,FIND("UTC",A2)-9,8)

07:33:00

这里先找到"UTC"在字符串中的位置,然后从左边9个字符开始提取8个字符(占时间和"UTC"之间的space)。

您已经可以在 minutes/hours/seconds 上工作了。

营业时间:

=NUMBERVALUE(LEFT(B2,2))

07

分钟:

=NUMBERVALUE(Mid(B2,4,2))

33

秒:

=NUMBERVALUE(Right(B2,2))

00

您还可以使用相同的逻辑提取时间戳的日期部分。 C 列:

=MID(A2,FIND(B2,A2)-11,10)

Tue Nov 06

最后,您还可以将所有这些组合成一个 Excel 日期,并直接对结果数字进行操作(这将确保您获得一个新的有效日期,该日期占 incrementing/decrementing hours/days/months/years,也会自动计算闰年。)

最终日期,包括时间戳,D 列:

=DATEVALUE(MID(A2,FIND(B2,A2)-3,2)&"-"&MID(A2,FIND(B2,A2)-7,3)&"-"&RIGHT(A2,4))+NUMBERVALUE(LEFT(B2,2))/24+NUMBERVALUE(MID(B2,4,2))/(24*60)+NUMBERVALUE(RIGHT(B2,2))/(24*60*60)

43410.3145833333

在这个最终数字上,您可以直接将分钟数 increase/decrease 添加到它上。这个数字的单位是"days"所以一分钟等于1/(24*60),一小时等于1/24。删除33分钟示例:

=D2 - 33/(24*60)

43410.2916666667

将格式更改为 [dd/mm/yyyy hh:mm] 将导致:

06/11/2018 07:00:00