Excel:macros自动格式化时间,例如20130808191057将被格式化为19:10

我正在导出一个报告,其中包括作业完成时间的结束时间,但时间以下列格式20130808191057(yyyymmddhhmmss)导出。

我试图从Excel中使用date和时间自动格式,但似乎没有工作。

我需要一个macros或一个VBA脚本,将采取一系列的单元格让我们说K4:K86和格式显示为20130808191057的时间,并格式化为19:10

如果可能的话,我也希望能够在最后加上我的名字,以表明这项工作得到了双重检查,所以最终格式最终会像这样19:10 IT

最终,我需要一系列单元格K4:K86,其date时间显示为20130808191057 ,格式为19:10 IT

谢谢。

这不是一个格式问题。 使用A1中的数据,使用公式:

= TIME(MID(A1,9,2),MID(A1,11,2),RIGHT(A1,2)),并用时间格式格式化公式。

如果您需要一个macros将数据转换为时间,请select要更改并运行的单元格:

Sub TimeCreator() Dim r As Range, t As String For Each r In Selection t = r.Text r.Clear r.Value = TimeSerial(Mid(t, 9, 2), Mid(t, 11, 2), Right(t, 2)) r.NumberFormat = "[h]:mm ""IT""" Next End Sub 

为了避免处理空单元格,请testing它们:

 Sub TimeCreator() Dim r As Range, t As String For Each r In Selection If r.Value <> "" Then t = r.Text r.Clear r.Value = TimeSerial(Mid(t, 9, 2), Mid(t, 11, 2), Right(t, 2)) r.NumberFormat = "[h]:mm ""IT""" End If Next End Sub