【问题标题】:Selection.Replace ("." for "-") applied to "dd.mm.yyyy" returns "mm-dd-yyyy"应用于 "dd.mm.yyyy" 的 Selection.Replace ("." for "-") 返回 "mm-dd-yyyy"
【发布时间】:2015-01-13 02:24:00
【问题描述】:

第一次在论坛上提问,请耐心等待 :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”。任何人都知道如何纠正这个?谢谢!

【问题讨论】:

    标签: excel replace vba


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      感谢您的回答加里。刚刚找到了答案,并且效果很好。我会把代码留给你:

      选择要转换的单元格并运行以下命令:

      With Selection 
              .TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, _ 
              TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
              Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ 
              :=Array(1, 4) 
              .NumberFormat = "dd-mm-yyyy" 
      End With
      

      干杯!

      【讨论】:

        猜你喜欢
        • 2013-02-22
        • 1970-01-01
        • 1970-01-01
        • 2014-04-30
        • 1970-01-01
        • 2020-02-24
        • 2014-05-08
        • 2017-07-29
        • 1970-01-01
        相关资源
        最近更新 更多