Незначительная проблема
Selection.NumberFormat = "mmm-yy"
Вы ничего не выбрали, поэтому этот формат помещается туда, где вы оставили курсор.
Основная проблема
Вы столкнулись с ошибкой Excel, что она будет интерпретировать даты как в американском формате (со средним порядком байтов), если это возможно при переносе данных на лист.«1/11/2011» будет «11 января 11» для американца, так же как и для Excel.«20/11/2011» не является действительной американской датой, поэтому для Excel это «20 ноября 11».
Я могу продублировать вашу проблему, объявив sDate и LDate в виде строк.DateAdd
правильно работает со строками, поэтому LDate корректен, но при помещении в ячейку он неверно истолкован.
Я могу исправить вашу проблему, объявив sDate и LDate как даты:
Dim sdate As Date
Dim Ldate As Date