Excel:仅对符合模式的日期字符串使用日期格式

Excel:仅对符合模式的日期字符串使用日期格式

我正在使用 Office 365 中的 Excel

我有一个包含三种类型日期字符串的日期列:

string # 1: 12/9/2016 0:00  # this string has month, day, year, hours, minutes
string # 2: 201605 # this string has only year (2016) and month (05)
string # 3: 2016 # only has year (2016)

当我尝试使用以下日期格式格式化列时:MM/DD/YY,我得到

string # 1: 12/09/16 # correct
string # 2: 12/21/51 # clearly incorrect
string # 3: 07/08/05 # also incorrect

有没有办法将日期格式仅应用于格式为“MM/DD/YYYY H:MM”的单元格,而将其他字符串保留“原样”?

这是需要宏的东西吗?还是其他东西?

答案1

如果你有常数(非公式)在列中A,然后尝试这个简短的宏:

Sub INeedADate()
    Dim Kolumn As Long, rng As Range, r As Range
    Dim u As Long
    Kolumn = 1
    Set rng = Columns(Kolumn).Cells.SpecialCells(2)
    For Each r In rng
        u = UBound(Split(r.Text, "/"))
        If u = 2 Then
            r.NumberFormat = "mm/dd/yy"
        End If
    Next r
End Sub

相关内容