Вход | Регистрация

Информационные технологии ::

Метки: 

Excel: как сделать FitToPagesWide=1 и Zoom=False?

Я
   romix
 
24.05.04 - 17:08
Хочу чтобы при печати таблица Excel влезла на одну страницу. Делаю так:
           xl.ActiveSheet.PageSetup.LeftMargin=0.5;
           xl.ActiveSheet.PageSetup.RightMargin=0.5;
           xl.ActiveSheet.PageSetup.Orientation=2; //xlLandscape
           xl.ActiveSheet.PageSetup.FitToPagesWide=1;
           xl.ActiveSheet.PageSetup.Zoom=0; //Здесь пишет ошибку:
xl.ActiveSheet.PageSetup.Zoom=0;
{D:\ЛИФТЫ1\EXTFORMS\РАСШИФРОВКАСИГНАЛОВ.ERT(118)}: Microsoft Excel: Нельзя установить свойство Zoom класса PageSetup

В макрорекордере это выглядит как .Zoom=False
Кто-нибудь сталкивался, и как это можно вылечить?
В таблицах MXL все с этим нормально, а в Ёкселе как всегда лезут непонятные траблы...
 
 
   romakinp
1 - 27.10.04 - 11:54
В EXCEL свойство PageSetup.ZOOM имеет тип Variant и воспринимает 0 как пустое значение, а не как логическое False. 1С значение False непосредственно передать через OLE не может.

У меня проблема решена следующим образом:
- в отдельной книге EXCEL стр.xls написал макрос Макрос1:
sub Макрос1()
   ActiveSheet.PageSetup.Zoom = False
end sub

Для вызова макроса методом RUN книга с макросом должна быть открыта до открытия обрабатываемых книг:
   Макрос=Эксель.Workbooks.Open(КаталогИБ()+"стр.xls");

Для масштабирования активного листа при печати используется метод RUN:
   Эксель.RUN("стр.xls!Макрос1");

После окончания обработки книга с макросом закрывается:
   Макрос.Close();

Пока других вариантов решения описанной проблемы не нашел


Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует