Хелп ми плиз.Я понимаю что тема избитая, но не могу разобраться Вот кусок работающего Вордового макроса
Код
ActiveDocument.Range(Start:=ActiveDocument.Range.Start, End:=ActiveDocument.Range.End).Copy
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
Selection.Paste
ActiveDocument.Range(Start:=ActiveDocument.Range.Start, End:=ActiveDocument.Range.Start).Select
Selection.InsertBreak Type:=wdPageBreak
With ActiveDocument.Styles(wdStyleNormal).Font
If .NameFarEast = .NameAscii Then
.NameAscii = ""
End If
.NameFarEast = ""
End With
With ActiveDocument.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientLandscape
.TopMargin = CentimetersToPoints(1.27)
.BottomMargin = CentimetersToPoints(1)
.LeftMargin = CentimetersToPoints(2.4)
.RightMargin = CentimetersToPoints(0.95)
В экселе есть объекты
Код
Set objWordBill = CreateObject("Word.Application")
objWordBill.Visible = True
directory = fnShellBrowseForFolderVB1 & "\"
objWordBill.Documents.Open (directory & fileName)
Set aDoc = objWordBill.ActiveDocument
но при попытки замены ActiveDocument на aDoc не работает. И ругается на CentimetersToPoints еще до запуска макроса
ПС. Ранее связывание решило проблему с CentimetersToPoint. И замена ActiveDocument.Range(Start:=ActiveDocument.Range.Start, End:=ActiveDocument.Range.End).Copy на aDoc.Range(Start:=aDoc.Range.Start, End:=aDoc.Range.End).Copy работает но замена Selection на aDoc не работает
А Вы включили библиотеку Ворда в ВБА Екселя. Если галка не стоит, то он не понимает что нужно и ругается до запуска. Ну и на форуме есть макросы с работой в Ворде. Сейчас погляжу, ссылку сюда скину если найду.
alexthegreat,да, включил. буду премного благодарен. я искал но именно связанных с форматированием документа я нашел такая конструкция Set UNPBill = aDoc.Range(aDoc.Paragraphs(13).Range.Start, aDoc.Paragraphs(13).Range.End) у меня есть и она работает
мне пока помогает Set objSelection = objWordBill.Selection и замена Selection.InsertBreak Type:=wdPageBreak на objSelection.InsertBreak Type:=wdPageBreak с переопределением перед каждым использованием Selection как это работает - представляю смутно. возможно это кривой костыль
jfd, wdPageBreak - это константа ворда и эксель её не знает, если я не ошибаюсь. Лучше заменять её на значение, в данном случае - это 7. (альт+эф11 в ворде, в окне immediate набираете: ? wdPageBreak жмёте энтер и получаете значение - так для любой вордовской константы)
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori