Посмотрите на ваши значения с датами в Excel.Если они автоматически выровнены по левому краю, Excel считает их не датами, а строками.На рисунке ниже столбец A и столбец B - это строки, а столбец C - это дата.

Когда к строке применяется r.Value = CDate(r.Value)
, возникает ошибка несоответствия типов, поскольку VBA не знает, как преобразовать строку в дату.
Чтобы убедиться, что дата отформатирована как дата, а Excel знает, что с ней делать, вам нужно найти способ синтаксического анализа 1-Mar-19
даты.Есть несколько способов сделать это, в зависимости от того, как вы себя чувствуете.Вероятно, проще всего заменить -
на /
и оставить VBA и Excel, чтобы сделать остальное:
Sub TestMe()
Dim r As Range
For Each r In ThisWorkbook.Worksheets(1).Range("A1:B9")
r = Replace(r, "-", "/")
r.NumberFormat = "dd.mm.yyyy"
Next r
End Sub