Как уже недонократно указывалось, любые параметры в Com-объекты желательно оборачивать в ComVariant().
Попробуйте так
X++:
COM workSheets;
int totalSheets;
COM workSheetLast;
COM workSheetForMove;
workSheets = m_comDocument.worksheets();
totalSheets = workSheets.count();
workSheetLast = workSheets.Item(ComVariant::createFromInt(totalSheets));
workSheetForMove = workSheets.Item(ComVariant::createFromInt(1));
workSheetForMove.move(null, workSheetLast);
Да, в соответствии с HELP, если не указан ни один из 2 параметров (befor или after), то метод move() создает новую книгу.