Попробуйте сделать по аналогии с этим моим сообщением:
Параметры pastespecial()
А именно:
1. Закомментируйте у себя строку "XLSrange.select();" - она ни к чему в моем случае
2. Вместо "XLSWorkSheet.pasteSpecial(1);" напишите "XLSrange.pasteSpecial(1);"
Плюс обратите внимание вот на это:
Ускорение экспорта в Excel - и там про терминал. Вы уверены, что буфер, передающийся в процедуру - тот, который нужен? Не происходит ли подмена на локальный или наоборот?