не могу установить PageSetup.Orientation = xlLandscape из MS Project - PullRequest
1 голос
/ 21 октября 2009

Используя VBA в MS Project 2003, я создаю лист Excel и записываю в него данные. После этого я хочу изменить SetPrintArea и Orientation листа, который я создал, поэтому я написал

with xlsheet                         '// Defined being an Excel.Worksheet
    For i = 1 To .UsedRange.Columns.Count
        .Columns(i).EntireColumn.AutoFit
    Next i
    txtPrintArea = txtPrintArea & "$" & xlCol.Row  '// I created the range to print before
    With .PageSetup
        .Orientation = xlLandscape
        .PrintArea = xlSheet.UsedRange.Address
    End With
End With

Вылетает в операторе .Orientation. Если я это прокомментирую, он вылетает в строке .PrintArea. Я пришел к выводу, что он не может установить любое свойство .PageSetup

Как мне указать PrintArea?

Ответы [ 2 ]

1 голос
/ 26 октября 2009

Я установил PDF-принтер BullZip и после этого .PageSetup.Orientation работает. Похоже, PageSetup НУЖЕН установить принтер.

0 голосов
/ 22 октября 2009

Вы делаете правильные вещи.

Почему вы устанавливаете txtPrintArea, но затем устанавливаете .PrintArea = xlSheet.UsedRange.Address ???

В противном случае вам нужно будет разместить больше кода в качестве примера. Я создал следующее на основе вашего вопроса, и он работал для меня:

Set xlSheet = Sheet1
Set xlCol = Sheet1.Rows(1)
txtPrintArea = "A"
With xlSheet                         '// Defined being an Excel.Worksheet
    xlSheet.UsedRange.Columns.EntireColumn.AutoFit
    txtPrintArea = txtPrintArea & "$" & Trim(Str(xlCol.Row)) + ":b2"   '// I created the range to print before
    With .PageSetup
        .Orientation = xlLandscape
        .PrintArea = txtPrintArea '//xlSheet.UsedRange.Address
    End With
End With
...