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


#0 by romix
Хочу чтобы при печати таблица 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:ЛИФТЫ1EXTFORMSРАСШИФРОВКАСИГНАЛОВ.ERT}: Microsoft Excel: Нельзя установить свойство Zoom класса PageSetup В макрорекордере это выглядит как .Zoom=False Кто-нибудь сталкивался, и как это можно вылечить? В таблицах MXL все с этим нормально, а в Ёкселе как всегда лезут непонятные траблы...
#1 by romakinp
В 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; Пока других вариантов решения описанной проблемы не нашел
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям