Имя: Пароль:
1C
1С v8
Копирование листа Excel в новый документ Excel
0 Alesha
 
29.08.17
14:37
Задача: имеется шаблон файла Иксель, сделать новую книгу и скопировать лист из шаблона в новую книгу.
Данный код позволяет скопировать данные, но размеры ячеек не сохраняются. Нужно что бы копировалось, как в шаблоне, включая формулы. Что можно изменить?

Попытка
    
        Excel = Новый COMОбъект("Excel.Application");
    Исключение    
        Сообщить("Не удалось инициализировать Excel");    
        Возврат;    
    КонецПопытки;
    
    
    
    Попытка
        
        // Открыть книгу, содержащую шаблон оформления.
        Шаблон = Excel.Workbooks.Open("d:\Files\Шаблоны отчетов\Шаблон Software development report in portfolio.xlsx");
        
        
        ЛистШаблона = Шаблон.WorkSheets("Шаблон Портфеля");
        
        НоваяКнига = Excel.Workbooks.Add();
        
        // добавить в книгу новый лист:
        
        ЛистНовый = НоваяКнига.Sheets.Add();
        ЛистНовый.Name = "Проект 1";

        // Копировать область из книги-шаблона в новую книгу.
        ЛистШаблона.Range("A1:Y87").Copy(ЛистНовый.Range("A1:Y87")); // работает, но не сохраняется размер ячеек
        
        //ЛистШаблона.Copy(ЛистНовый);- не работает выдает ошибку
//Произошла исключительная ситуация (Microsoft Excel): Не удается вставить листы в конечную книгу, так как она содержит меньшее число строк и столбцов, чем исходная книга. Чтобы переместить или скопировать данные в конечную книгу, следует выделить их, а затем с помощью команд копирования и вставки вставить их на листы другой книги.
    
        //Шаблон.Close(0);
        
        Excel.Visible = Истина;
    Исключение    
        Сообщить(ОписаниеОшибки());
        Excel.Quit();    
    КонецПопытки;
1 Fish
 
29.08.17
14:44
(0) Копируй файл шаблона полностью, потом уже заполняй новый файл.
2 пипец
 
29.08.17
14:44
а просто копировать файл и его открывать не ?
3 Timon1405
 
29.08.17
14:45
погуглить "copy excel sheet with column widths vba" не предлагать?
4 Alesha
 
29.08.17
14:53
в новом файле будет много листов, каждый подобно листу из шаблона, поэтому нужно полностью скопировать.
5 НЕА123
 
29.08.17
14:58
6 Alesha
 
29.08.17
15:03
ЛистШаблона.Copy(ЛистНовый);//- не работает выдает ошибку

//Произошла исключительная ситуация (Microsoft Excel): Не удается вставить листы в конечную книгу, так как она содержит меньшее число строк и столбцов, чем исходная книга. Чтобы переместить или скопировать данные в конечную книгу, следует выделить их, а затем с помощью команд копирования и вставки вставить их на листы другой книги.
7 Victor111
 
29.08.17
15:49
(6) запиши макрос (копирования из настройками и форматированием), потом посмотри код, и будет понятно что не так в коде в 1с
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан