|
Создание печатных форм в макете Excel в цикле | ☑ | ||
---|---|---|---|---|
0
fantomrik
23.08.13
✎
17:25
|
Добрый день!
Пытаюсь программно заполнить и вывести N-ое число печатных форм Экселя, но выводится только 1, как я понимаю последняя. Подскажите, в чем ошибка? Для Сч=0 по мКоличество Цикл Макет = ПолучитьМакет("МойМакетВЭкселе"); MSExcel = Макет.Получить(); Книга = MSExcel; Лист = Книга.Worksheets(1); Диапазон = Лист.Cells; //заполнение макета ................ MSExcel.Application.Visible = 1; MSExcel.Windows(1).Visible = 1; MSExcel.Activate(); КонецЦикла |
|||
1
Euguln
23.08.13
✎
17:27
|
Лист = Книга.Worksheets(1);
В один и тот же лист выводишь делай Лист = Книга.Worksheets.Add(); |
|||
2
fantomrik
23.08.13
✎
17:35
|
(1) В такой ситуации я создаю лист, а не помещаю данные в лист макета и все равно в итоге только последняя печатная форма выходит.
|
|||
3
Euguln
23.08.13
✎
17:49
|
Ну скопируй свой макет на новый лист
|
|||
4
fantomrik
23.08.13
✎
17:51
|
(3) "и все равно в итоге только последняя печатная форма выходит." то есть открывается 1 файл экселя...
|
|||
5
Euguln
23.08.13
✎
18:02
|
Макет = ПолучитьМакет("МойМакетВЭкселе");
MSExcel = Макет.Получить(); Книга = MSExcel; Для Сч=0 по мКоличество Цикл Лист = Книга.Worksheets.Add(); Диапазон = Лист.Cells; //заполнение макета ................ КонецЦикла MSExcel.Application.Visible = 1; MSExcel.Windows(1).Visible = 1; MSExcel.Activate(); Выведет в один файл на разные листы. |
|||
6
Euguln
23.08.13
✎
18:03
|
Если нужно открыть много файлов, то после
MSExcel.Activate(); попробуй вставить MSExcel = Неопределено; |
|||
7
fantomrik
23.08.13
✎
18:11
|
(5) Спасибо! а возможен вариант наплодить файлов Экселя с 1 листом в каждом?
|
|||
8
Euguln
23.08.13
✎
18:12
|
(7) пробуй (6)
|
|||
9
fantomrik
23.08.13
✎
18:16
|
(8) не катит. Ну буду в 1 выводить, спасибо!
|
|||
10
fantomrik
26.08.13
✎
12:17
|
Было найдено такое решение задачи, возможно кому то пригодится :
ActiveDocuments = Новый ТаблицаЗначений; ActiveDocuments.Колонки.Добавить("Документ"); Для Сч=0 по мКоличество Цикл ActiveDocument = ПолучитьМакет("МакетЭксель").Получить(); Книга = ActiveDocument; Лист = Книга.Worksheets(1); Диапазон = Лист.Cells; //Заполнение макета Эксель ..................... НоваяСтрока = ActiveDocuments.Добавить(); НоваяСтрока.Документ = ActiveDocument; НоваяСтрока.Документ.Activate(); НоваяСтрока.Документ.Windows(1).Visible = Истина; НоваяСтрока.Документ.Application.Visible = Истина; КонецЦикла; Хотелось бы добавить что экселевские макеты будут находится в переменной, и как только она уничтожится, документы закроются, так как сохранение тут не предусмотрено (это задача пользователя в данном случае). Поэтому ActiveDocuments у меня Глобальная переменная документа, и автоматом закроются доки Excel, при закрытии документа в котором производился вызов данной функции. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |