从日期时间中删除日期(VBA Excel)

从日期时间中删除日期(VBA Excel)

我需要从具有日期时间值的多行中删除日期。或者将时间提取到另一个单元格。

例如:

A1 = 3/11/2022 10:20:00
A1 after macro = 10:20:00
or
A1 = 3/11/2022 10:20:00
A2 = 10:20:00

如果我更改数字格式,单元格将显示时间 (10:20:00),但单元格值仍为 3/11/2022 10:20:00。我需要批量上传的时间,因此需要删除日期。
以下代码对我有用。但仅适用于一个单元格。例如,如果我将范围改为“A1:A5”,我会收到错误。

Sub ChangeDateToTime()
With Range("A1")
    .Value = TimeValue(.Value)
    .NumberFormat = "hh:mm:ss"
End With
End Sub

我希望你们能够帮助我。

答案1

我认为您不需要 VBA,因为可以使用以下公式将时间移动到另一列。

假设日期时间列是从第 1 行开始的 A,将列(例如)B1 设置为以下内容:

=TIME(HOUR(A1),MINUTE(A1),SECOND(A1))

现在您可以单击 B1 内部,然后将右下角向下拖动到 B 列以扩展公式。


Ron Rosenfeld 向我介绍了一个从日期时间值中提取时间部分的巧妙技巧,即使用基于 MOD 函数的公式。

B1中的这个公式更简单:

=MOD(A1,1)

有关此技巧的更多详细信息,请参阅文章 从日期和时间中提取时间

相关内容