2015-12-10 6 views
0

У меня есть рабочий лист excel, и у меня есть макрос, который сохраняет рабочий лист как файл PDF в каталог в нашей сети. Когда я просматриваю Предварительный просмотр в Excel, он находится на 1 листе. Однако, когда я открываю PDF-файл, он истекает кровью на вторую страницу. Это форматирование в ландшафте, и в PDF-файле имеется немного 1 таблицы и 1 график, показывающий на левой стороне второго листа (правая сторона страницы перетекает на следующую страницу).Рабочий лист Excel сохранен как PDF - Изменения в области печати

Я пробовал так много вещей, чтобы заставить это вставить, но это не сработает. Вот некоторые из вещей, которые я пробовал:

  • Ручной настройка на области печати и Page Breaks
  • Обновил область печати и разрывы страниц после обновления данных через макрос.
  • Параметры печати на 1 странице на 1 странице (вручную в с помощью макроса)
  • Set печати точек на дюйм (вручную и с помощью макроса)

Любое понимание было бы здорово. Спасибо заранее.

+0

При сохранении, что у вас есть для оптимизации и для вариантов? – pnuts

+1

Помогло бы показать ваш точный код, используемый для вывода PDF. –

ответ

0

Try ...

Sub Macro1() 
ActiveWorkbook.ExportAsFixedFormat _ 
Type:=xlTypePDF, _ 
Filename:="Example", _ 
Quality:=xlQualityStandard, _ 
IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, _ 
From:=1, _ 
To:=1, _ 
OpenAfterPublish:=True 
End Sub 
0

Я знаю, это кажется глупым, но я обнаружил, что делает его в два раза решает проблему :)

Sub Main(saveToPdf as boolean) 

If saveToPdf Then 

'save to pdf 
    ActiveSheet.Range(ActiveSheet.PageSetup.PrintArea).Select 
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "D:\myPath\myFileName " & year & ".pdf", Quality:= _ 
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=False 

    Call oneMoreTimeBecauseItSolvesProblem(year, showAfterSave) 
End If 
End Sub 

Sub oneMoreTimeBecauseItSolvesProblem(year As Integer, showAfterSave As Boolean) 

    On Error Resume Next 
    ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 
    Application.ScreenUpdating = True 

'save to pdf 
    ActiveSheet.Range(ActiveSheet.PageSetup.PrintArea).Select 
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "D:\myPath\myFileName " & year & ".pdf", Quality:= _ 
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=showAfterSave 
End Sub 
Смежные вопросы