gpt4 book ai didi

excel - 如何从真实日期中去除时间?

转载 作者:行者123 更新时间:2023-12-03 00:23:45 28 4
gpt4 key购买 nike

我想从真实日期中删除时间戳。

从 2015 年 11 月 31 日 12:00:00 到 2015 年 11 月 31 日。

我使用以下代码,而不使用“文本到列”(远离它):

Sub strpTime()
Dim LR As Long, i As Long
Application.Calculation = xlCalculationManual
LR = Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To LR
With Range("B" & i)
.NumberFormat = "dd/mm/yy"
.Value = Int(.Value)
End With
Next i
Application.Calculation = xlCalculationAutomatic
End Sub

执行的运行时间很慢,因为我有将近 4,000 行。有没有其他方法,而不使用 TexttoColumns?

最佳答案

获取所有原料Range.Value2 properties到变体数组中并在内存中执行时间截断。调整数组元素后,将新值转储回工作表并设置 Range.NumberFormat property .

Sub strpTime()
Dim lr As Long, d As Long, vDATs As Variant

Application.Calculation = xlCalculationManual

With Worksheets("Sheet1")

With .Range(.Cells(2, 2), .Cells(Rows.Count, 2).End(xlUp))
vDATs = .Value2
For d = LBound(vDATs, 1) To UBound(vDATs, 1)
vDATs(d, 1) = Int(vDATs(d, 1))
Next d
.Value = vDATs
.NumberFormat = "dd/mm/yy"
End With

End With

Application.Calculation = xlCalculationAutomatic
End Sub

坚持使用Int(...)函数转换。 CIntCLng 都有舍入倾向,如果时间在 12:00 之后,可能会将日期提前。

关于excel - 如何从真实日期中去除时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974106/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com