Имя: Пароль:
1C
 
Копирование листов Excel
0 Lexas
 
15.05.08
14:09
Есть макет который представляет активный документ Excel. Он состоит из одного листа.
Нуно в одну книгу создавать несколько листов заполненных по данному Макету. Самое простое это скопировать этот лист и вставить его. Но тут то и проблема добавиь лист могу а вот скопировать содержимое не получается...... Создание нескольких книг экселя не подходит количество листов может быть под 50. И руками их потом собирать околееш.Помогитяяяяяяяяя.
1 Lexas
 
15.05.08
14:17
Да и копировать нужно весь лист, а не рабочую область, На VBA это просто а как это сделать в 1С 8-ке
2 Fragster
 
гуру
15.05.08
14:18
записать макрос, и запусткать его из 1с
3 dk
 
15.05.08
14:20
в чем проблемы с копированием выражаются? Не знаешь как Ексель по OLE запустить?
4 Lexas
 
15.05.08
14:21
Глупый вопрос а как??
5 Lexas
 
15.05.08
14:23
Проблема макет активный докумет, это лист экселя.
Один лист не проблеема заполнить, но их может быть много нуно чтобы все листы лежали в одной книге экселя, заполненные по одному шаблону(макету)
6 Lexas
 
15.05.08
14:24
Не получается программно скопировать лист и вставить его в эту же книгу
7 Амёба
 
15.05.08
14:32
ФайлОтчета    = СоздатьОбъект("Excel.Application");
ФайлОтчета.Displayalerts = 0;
Книга        = ФайлОтчета.Workbooks.Open(ИмяФайлаВыгрузки); //вместо истина можно вставить имя шаблона

Основа        = Книга.Worksheets(1);
Основа.Name    = ПериодСтр(НачДата,КонДата);
ФайлОтчета.Visible    = 0;
Основа.Activate();
Обл = Основа.Rows("1:2");
Обл.Select();
Обл.Replace("КонПериода",Строка(КонДата));
Обл.Replace("ВесьПериод",ПериодСтр(НачДата,КонДата));
Обл.Replace("НачПериода",Строка(НачДата-1));

Книга.Worksheets.Add();
ДешёвыеОС        = Книга.Worksheets(1);
ДешёвыеОС.Name    = ПериодСтр(НачДата,КонДата) + " < 10,000";

Книга.Worksheets.Add();
ДорогиеОС        = Книга.Worksheets(1);
ДорогиеОС.Name    = ПериодСтр(НачДата,КонДата) + " >= 10,000";

Основа.Activate();
Обл = Основа.Rows("1:2");
Обл.Select();
Обл.Copy();
ДорогиеОС.Activate();
ДорогиеОС.Paste();


Пример копирования в 7.7
8 Lexas
 
15.05.08
14:35
Амёба
Это копирование области а нужно лист иначе объединение ячеек отваливается
9 dk
 
15.05.08
14:38
"Copies the sheet to another location in the workbook.

expression.Copy(Before, After)
expression    Required. An expression that returns one of the above objects.

Before   Optional Variant. The sheet before which the copied sheet will be placed. You cannot specify Before if you specify After.

After   Optional Variant. The sheet after which the copied sheet will be placed. You cannot specify After if you specify Before." VBA Help

что-то вроде
МойЛист = МояКнига.Sheets(1);
МойЛист.Copy(, МойЛист);
10 Lexas
 
15.05.08
14:38
На VBA это так
Sub м()
Sheets(1).Select
   Sheets(1).Copy After:=Sheets(1)
End Sub
А как на 1С эт сделать
11 Lexas
 
15.05.08
14:39
dk
При такой записи вылетает с ошибкой
12 dk
 
15.05.08
14:40
МойЛист.Copy(МойЛист);
13 Lexas
 
15.05.08
14:43
dk
пробывал и так и вставлял первым параметром неопределено, NULL
Ошибка: произошла исключительная ситуация....Метод Copy из класса... завершен неверно
14 dk
 
15.05.08
14:46
как ексель создаешь?
15 igork1966
 
15.05.08
14:48
(13) Код покажи....
16 Амёба
 
15.05.08
15:14
(8) проверил ещё раз - не отваливается.
17 Lexas
 
15.05.08
15:54
Все разобрался, нуно было актинвный лист указать
18 Lexas
 
15.05.08
15:54
Спасибо всем
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn