excel中的反向日期

时间:2017-03-11 12:31:12

标签: excel-vba vba excel

我想知道如何转换日期" 17/03/10"到" 10/03/17"。

17年是,03是月,10是日。我可以获得一个VBA代码,以便在Excel中使用吗?

2 个答案:

答案 0 :(得分:1)

我假设您使用了引号,这些字符串表示您要转换的日期,而不是日期值。

因此,试试这个:

strOldDate = "17/03/10"
strNewDate = Mid$(strOldDate, 7, 2) & "/" & _
             Mid$(strOldDate, 4, 2) & "/" & _
             Mid$(strOldDate, 1, 2)
MsgBox strNewDate  'Outputs "10/03/17"

答案 1 :(得分:0)

尝试以下内容,我已将其放入函数中,以便您可以更轻松地将其包含在代码中(甚至在公式中使用它)

'// The actual function
Function ReformatDate(WeirdDate As String) As Date
    ReformatDate = Right(WeirdDate, 2) _
        & Mid(WeirdDate, 3, 4) _
        & Left(WeirdDate, 2)
End Function

'// Testing with whatever is selected
Sub TestFixSelection()
    For Each Cell In Selection
        Cell.Value = ReformatDate(Cell.Value)
    Next
End Sub

'// Testing over a fixed range
Sub TestFixFixedRange()
    For Each Cell In [A1:A10]
        Cell.Value = ReformatDate(Cell.Value)
    Next
End Sub

请注意,这会更正字符串并将其转换为日期,而不是日期的字符串表示形式。不要害怕Excel日期,他们是你的朋友。