Возможно, что некоторые из ваших "дат" на самом деле Текст значений.Чтобы преобразовать их в общий «настоящий» формат.Выберите ячейки и запустите:
Sub DateUnifier()
Dim r As Range, d As Date, s As String, nf As String, arry
nf = "m/d/yyyy"
For Each r In Selection
s = r.Text
If s <> "" Then
arry = Split(s, "/")
If UBound(arry) = 2 Then
If IsNumeric(arry(0)) Then
r.Clear
r.Value = DateValue(s)
r.NumberFormat = nf
Else
r.Clear
r.Value = DateSerial(CInt(arry(2)), konvert(arry(0)), CInt(arry(1)))
r.NumberFormat = nf
End If
End If
End If
Next r
End Sub
Public Function konvert(st As Variant) As Integer
mnths = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
i = 1
For Each mn In mnths
If st = a Then
konvert = i
Exit Function
End If
Next mn
End Function
ИСПРАВЛЕНИЕ:
В функции konvert () есть ошибки, используйте вместо этого:
Public Function konvert(st As Variant) As Integer
mnths = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
i = 1
For Each mn In mnths
If st = mn Then
konvert = i
Exit Function
End If
i = i + 1
Next mn
End Function