Если при этом получаются неправильные 50 электронных писем, вы можете попробовать пройтись по пунктам в обратном порядке, например:
For i = Fldr.Items.Count To Fldr.Items.Count - 50 Step -1
ActiveSheet.Cells(i, 1).Value = Fldr.Items(i).Subject
etc...
Добавьте exit
, как только вы нажмете 50, например:
If counter = 50 Then Exit For
Кроме того, вы можете в качестве альтернативы сохранить существующий код, а затем добавить функцию к sort
электронным письмам к полученной дате и сохранить только верхние 50