1

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

我尝试使用 Excel 中的日期和时间自动格式化,但似乎没有任何效果。

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

如果可能的话,我还希望能够在时间结束时添加我的姓名首字母,以表明这项工作是经过双重检查的,所以最后格式会像这样 19:10 IT

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

谢谢。

4

1 回答 1

1

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

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

如果您需要宏将数据转换为时间,请选择要更改的单元格并运行:

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

为避免处理空单元格,请对其进行测试:

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
于 2013-08-10T22:33:12.210 回答