Заменил это
Цитата(logist @ 24.04.12, 10:32)
НовыйЛист = Книга.Worksheets.Add();
НовыйЛист.Name = НовоеИмяЛиста;
НовыйЛист.Copy(Лист.Worksheets(1));
на это
Лист.Worksheets(1).Name = НовоеИмяЛиста;
Лист.Worksheets(1).Copy(Книга.Worksheets(1));
работает
В результате оптимизации, вышло вот что:
Процедура ПеренестиЛистыВКнигуExcel(ПутьКниги, СписокФайлов) Экспорт
Файл = Новый COMОбъект("Excel.Application");
ФСО = Новый COMОбъект("Scripting.FileSystemObject");
Файл.Visible = 0;
Файл.DisplayAlerts = 0;
Попытка
Книга = Файл.Workbooks.Open(ПутьКниги);
Исключение
Книга = Файл.Workbooks.Add();
Книга.SaveAs(ПутьКниги);
КонецПопытки;
Для Каждого ФайлЛиста Из СписокФайлов Цикл
НовоеИмяЛиста = ФСО.GetBaseName(ФайлЛиста.Значение);
Попытка
Лист = Файл.Workbooks.Open(ФайлЛиста.Значение);
Исключение
Продолжить;
КонецПопытки;
Попытка
Лист.Worksheets(1).Name = НовоеИмяЛиста;
Исключение
Лист.Worksheets(1).Name = НовоеИмяЛиста+"A";
КонецПопытки;
Лист.Worksheets(1).Copy(Книга.Worksheets(1));
Лист.Close(0);
УдалитьФайлы(ФайлЛиста.Значение);
//Книга.Save();
КонецЦикла;
Книга.Save();
Книга.Close(-1);
Файл = 0;
КонецПроцедуры
Вдруг кому пригодится. Перегоняет однолистовые xls-файлы (СписокФайлов - список значений) в одну книгу, имя листа в книге это имя файла с одним листом.