Selection.Replace("。" for" - ")适用于" dd.mm.yyyy"返回" mm-dd-yyyy"

时间:2015-01-12 17:41:42

标签: excel-vba replace vba excel

第一次在论坛上询问某事,请耐心等待:D。

使用宏时,我需要从来自SAP的文件更改整个列日期。日期格式为" dd.mm.yyyy"。我需要更换"。"为" - "并且还应用日期格式" dd-MM-yyyy"。我使用这段代码:

range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "dd-mm-yyyy"
    Selection.Replace What:=".", Replacement:="-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

该方法将日期返回为" mm-dd-yyyy"。正如我所说,我需要" dd-mm-yyyy"。谁知道如何纠正这个?谢谢!

1 个答案:

答案 0 :(得分:1)

选择要转换的单元格并运行:

Sub dural()
    Dim r As Range
    For Each r In Selection
        t = r.Text
        ary = Split(t, ".")
        r.Clear
        r.NumberFormat = "dd-mm-yyyy"
        r.Value = DateSerial(ary(2), ary(1), ary(0))
    Next r
End Sub