Страницы: 1
RSS
vba-перенос данных из excel в word: задание параметров страницы word
 
Добрый день! Поскольку предыдущая тема про импорт данных уже закрыта, начинаю новую с вопроса о том, как задать параметры для страницы word при программном переносе данных из excel.  
Уважаемый nerv подсказать простой и действенный алгоритм копирования-вставки:    
(Автор: nerv, Дата: 09.11.2011 09:40)  
Sub io()  
Me.Range("A1:C6").Copy  
With CreateObject("Word.Application"): .Visible = True  
.Documents.Add.Range.PasteExcelTable False, False, False  
End With  
End Sub  
 
Мои попытки вставить в код строки по аналогии с заданием условий для листа excel  
.Orientation = xlLandscape  
.Zoom = False  
.FitToPagesWide = 1  
.FitToPagesTall = 1  
успехом не увенчались - нет в word таких параметров.  
Посему вопрос: можно ли как-то задать условия для страницы word "разместить не более, чем на одну страницу" или же просто установить альбомную ориентацию?
 
В Ворде тоже есть макрорекордер  
Записываете необходимые действия по изменению ориентации, потом внутри With вышеприведенного макроса вставляете эти строки.
 
{quote}{login=}{date=10.11.2011 01:24}{thema=}{post}В Ворде тоже есть макрорекордер  
Записываете необходимые действия по изменению ориентации, потом внутри With вышеприведенного макроса вставляете эти строки.{/post}{/quote}  
 
Да, уже записывала. Надеялась, что есть более элегантное решение, чем вставка  
 
   WordBasic.TogglePortrait Tab:=3, PaperSize:=0, TopMargin:="3", _  
       BottomMargin:="1.5", LeftMargin:="2", RightMargin:="2", Gutter:="0", _  
       PageWidth:="29.7", PageHeight:="21", Orientation:=1, FirstPage:=0, _  
       OtherPages:=0, VertAlign:=0, ApplyPropsTo:=0, FacingPages:=0, _  
       HeaderDistance:="1.25", FooterDistance:="1.25", SectionStart:=2, _  
       OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _  
       StartingNum:=1, FromText:=wdAutoPosition, CountBy:=0, NumMode:=0, _  
       TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, CharsLine:=42, LinesPage:= _  
       40, CharPitch:=220, LinePitch:=360, DocFontName:="+Основной текст", _  
       DocFontSize:=11, PageColumns:=1, TextFlow:=0, FirstPageOnLeft:=0, _  
       SectionType:=1, FolioPrint:=0, ReverseFolio:=0, FolioPages:=1
 
по большому счету надо указать вот это:  
PageWidth:="29.7", PageHeight:="21",    
и все.    
Хотя могу ошибаться - с Вордом редко-редко приходится сталкиваться.  
Попробуйте.  
 
З.Ы. 67755 во, пары прут!
 
{quote}{login=}{date=10.11.2011 01:30}{thema=}{post}по большому счету надо указать вот это:  
PageWidth:="29.7", PageHeight:="21",    
и все.    
Хотя могу ошибаться - с Вордом редко-редко приходится сталкиваться.  
Попробуйте.  
 
З.Ы. 67755 во, пары прут!{/post}{/quote}  
 
Если просто указать    
Sub io()  
Me.Range("A1:C6").Copy  
With CreateObject("Word.Application"): .Visible = True  
.Documents.Add.Range.PasteExcelTable False, False, False  
.PageWidth = 29.7  
.PageHeight = 21  
End With  
End Sub  
 
..выскакивает ошибка "объект не поддерживает свойство или метод". Равно как и при вставке всего текста макрорекордера. Собственно, за этим я и обращалась: как правильно записать нужные параметры?
 
вы ниже немножко недосмотрели (да и я тоже, поначалу)  
 With ActiveDocument.PageSetup  
       .Orientation = wdOrientLandscape  
   End With
 
ответил здесь  
http://www.planetaexcel.ru/forum.php?thread_id=33910  
 
 
>Если просто указать.....выскакивает ошибка.  
И правильно выскакивает. Смотрите к чему Вы обращаетесь через точку. Это приложение "Word.Application" а PageSetup это свойство чего? Правильно, Document'а : )  
 
 
22220  
 
p.s.: прям мои оценки в школе ^_^
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=nerv}{date=10.11.2011 01:58}{thema=}{post}ответил здесь  
http://www.planetaexcel.ru/forum.php?thread_id=33910  
 
 
>Если просто указать.....выскакивает ошибка.  
И правильно выскакивает. Смотрите к чему Вы обращаетесь через точку. Это приложение "Word.Application" а PageSetup это свойство чего? Правильно, Document'а : )  
 
 
22220  
 
p.s.: прям мои оценки в школе ^_^{/post}{/quote}  
 
Спасибо!
 
Кстати, если взять предложенный мною макрос и заменить 1 на wdOrientLandscape работать не будет. Как думаете, почему?)  
 
А ведь 1 это и есть wdOrientLandscape : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
Страницы: 1
Читают тему
Наверх