0
以下是我正在使用的代码。这工作正常,并将前两张转换为风景。但我不知道为什么它不会将sheet3和sheet4转换为横向。有人可以帮我这个: -如何将多个工作表转换为PDF横向
Public Sub SaveSheetsAsPDF()
Dim wksAllSheets As Variant
Dim wksSheet1 As Worksheet
Dim strFilename As String, strFilepath As String
'Set references up-front
Set wksSheet1 = ThisWorkbook.Sheets("Sheet1")
wksAllSheets = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")
For Each sh In wksAllSheets
Sheets(sh).PageSetup.Orientation = xlLandscape
Next
'strFilepath = "C:\"
'Create the full Filename using cells D6, E6 and F6
With wksSheet1
'Assemble the string cell-by-cell, "D6 E6-F6"
strFilename = strFilepath & .Range("D6").Value & " " & _
.Range("E6").Value & "-" & _
.Range("F6").Value & ".pdf"
End With
'Save the Array of worksheets (which will be selected) as a PDF
' ThisWorkbook.
Sheets(wksAllSheets).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
'Make sure all the worksheets are NOT left selected
wksSheet1.Select
End Sub
FWIW,你的代码为我工作。 – YowE3K
当时是否只有一个工作簿打开?我想知道'Sheets(sh).PageSetup.Orientation = xlLandscape'(它相当于'ActiveWorkbook.Sheets(sh).PageSetup.Orientation = xlLandscape')是否可能在错误的工作簿上运行。 (但是你正在使用Sheets(wksAllSheets)。稍后选择',所以它**应该是OK。) – YowE3K
你可以通过放置很多'Debug.Print表单(“Sheet2”)来调试它。PageSetup.Orientation &“|” &Sheet(“Sheet3”)。PageSetup.Orientation'通过您的代码声明,看看它是否随时写出'2 | 2'(2为横向,1为纵向),然后变回'2 | 1' - 如果确实如此,那意味着将其设置为横向工作正在发挥作用,但之后又有一些改变。 – YowE3K