将 Excel 工作簿中的工作表转换为 pdf 文件时的横向问题 VBA
Problems with landscape orientation when converting sheets in an Excel workbook to pdf files VBA
我正在尝试将工作簿中的每个 sheet 转换为具有“横向布局”的 pdf 文件,其中放置纸张。但是纸张方向绝对不是横向的。
有人可以帮我吗?
这似乎是一个普遍的问题,但是我找不到适合我的解决方案。
这是代码。
Sub Test()
Application.ScreenUpdating = False
Dim sFile As String
Dim sPath As String
Dim wks As Worksheet
With ActiveWorkbook
sPath = .Path & "\"
For Each wks In .Worksheets
sFile = wks.Name & ".pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFile
Application.PrintCommunication = False
With wks.PageSetup
.Orientation = xlLandscape
.Zoom = False
.CenterHorizontally = True
.CenterVertically = True
.FitToPagesWide = 1
.FitToPagesTall = 1
'.BottomMargin = 0
'.TopMargin = 0
'.RightMargin = 0
'.LeftMargin = 0
End With
Application.PrintCommunication = True
Next wks
End With
Application.ScreenUpdating = True
End Sub
请尝试下一个代码:
Sub ExportAsPdfLandscape()
Dim wks As Worksheet, Path As String, strPName As String, strShName As String
Path = "Folder path where to be saved\" ' end it in "\", please!
strPName = Application.ActivePrinter 'this records the current printer
For Each wks In ActiveWorkbook.Worksheets
wks.PageSetup.Orientation = xlLandscape
strShName = Path & wks.Name & ".pdf"
wks.PrintOut , , 1, , ActivePrinter:="Microsoft Print to PDF", _
Printtofile:=False, collate:=True, PrToFileName:=strShName, Ignoreprintareas:=True
Next
Application.ActivePrinter = strPName 'return to the former current printer
End Sub
我正在尝试将工作簿中的每个 sheet 转换为具有“横向布局”的 pdf 文件,其中放置纸张。但是纸张方向绝对不是横向的。 有人可以帮我吗?
这似乎是一个普遍的问题,但是我找不到适合我的解决方案。
这是代码。
Sub Test()
Application.ScreenUpdating = False
Dim sFile As String
Dim sPath As String
Dim wks As Worksheet
With ActiveWorkbook
sPath = .Path & "\"
For Each wks In .Worksheets
sFile = wks.Name & ".pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFile
Application.PrintCommunication = False
With wks.PageSetup
.Orientation = xlLandscape
.Zoom = False
.CenterHorizontally = True
.CenterVertically = True
.FitToPagesWide = 1
.FitToPagesTall = 1
'.BottomMargin = 0
'.TopMargin = 0
'.RightMargin = 0
'.LeftMargin = 0
End With
Application.PrintCommunication = True
Next wks
End With
Application.ScreenUpdating = True
End Sub
请尝试下一个代码:
Sub ExportAsPdfLandscape()
Dim wks As Worksheet, Path As String, strPName As String, strShName As String
Path = "Folder path where to be saved\" ' end it in "\", please!
strPName = Application.ActivePrinter 'this records the current printer
For Each wks In ActiveWorkbook.Worksheets
wks.PageSetup.Orientation = xlLandscape
strShName = Path & wks.Name & ".pdf"
wks.PrintOut , , 1, , ActivePrinter:="Microsoft Print to PDF", _
Printtofile:=False, collate:=True, PrToFileName:=strShName, Ignoreprintareas:=True
Next
Application.ActivePrinter = strPName 'return to the former current printer
End Sub