Имя: Пароль:
1C
1С v8
Скопировать из 1С лист из одного файла Excel в определенный лист другого...
0 garikxxx
 
13.02.16
20:44
Нашел на сайте ветку (v8: VBA и 1С), почитал, вроде все ок, все понятно, сделал по аналогии и есть вопросы...

// Файл в который нужно вставить данные...
Эксель = Новый COMОбъект("Excel.Application");
Книга=Эксель.WorkBooks.Open(Константы.ПутьКФайлу.Получить());
// лист куда нада вставить данные
Лист=Книга.WorkSheets(Фирма.ЛистEcxel);
Лист.Cells.Clear();

//Файл файл с данными
Эксель1 = Новый COMОбъект("Excel.Application");
Книга1=Эксель.WorkBooks.Open("Y:\Temp\exp_price.xlsx");
    
// операция копирования
Книга1.Sheets(1).Copy(Книга.Sheets(Фирма.ЛистEcxel));

...

Что имеем в итоге... В файле куда нужно скопировать создается новый лист "TDSheet" с необходимыми данными, а не копируется в определенный куда мне нужно...

Что я не так делаю? Фирма.ЛистEcxel точно передает название существующего листа...
1 Wern
 
13.02.16
21:37
Тебе нужно копировать данные листа, а не сам лист. Делал когда то, сейчас уже не помню точно команды, но так же как интерактивно, т.е. выделить лист, скопировать в буфер обмена, перейти на нужный лист, вставить из буфера обмена данные.
2 Wern
 
13.02.16
21:40
О даже код нашел
ИсходныйЛист.Cells.Copy();
ЛистРезультата.Paste();
3 garikxxx
 
14.02.16
12:21
Не совсем получилось,я где-то я делаю не то...

в данном случае

Книга1.WorkSheets(1).Cells.Copy();
Книга.WorkSheets(Фирма.ЛистExel).Paste();

ну или равноценно как я понимаю
Лист1=Книга1.WorkSheets(1);

Лист1.Cells.Copy();
Лист.Paste();

выдает ошибку...
{Обработка.ЗагрузкаВыгрузкаСоответствия.Форма.Форма.Форма(521)}: Ошибка при вызове метода контекста (Paste)
    Книга.WorkSheets(Фирма.ЛистExel).Paste();
по причине:
Произошла исключительная ситуация (Microsoft Excel): Чтобы вставить все ячейки листа Excel на текущий лист, необходимо выполнить вставку в первую ячейку (A1 или R1C1).
4 Смотрящий
 
14.02.16
12:23
Перед Лист.Paste();
вставь
Лист.Selection(A1) - или как то так
5 garikxxx
 
14.02.16
18:27
короче не проходит, ошибки то одни, то другие.
нашел у себя кусок лет 10 назад делал на VBA, но в 1С не понимаю почему не катит...

вот такое работало в экселе раньше...

Sheets("NewPrice").Select
Cells.Select
Selection.Copy
Sheets("Price").Select
Cells.Select
ActiveSheet.Paste
6 garikxxx
 
16.02.16
22:08
вопрос актуален. пробовал данный код интерпретировать, пробовал подсказки... до конца не получилось.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший