Вы можете изменить:
Range("A2").Cells(i, 1) = Subject
на:
ThisWorkSheet.Range("A2").Cells(i, 1) = Subject
Range
само по себе будет применяться к текущему листу (который,Исходя из ваших симптомов, это первый рабочий лист), так что вы просто каждый раз перезаписываете ячейки в этом рабочем листе.
Вот почему они заканчиваются последним введенным значением, а остальные листы остаются пустыми.