我有一个关于我的代码的问题,当我将一些工作表复制到另一个工作簿时,它会以某种方式更改格式(行高和列宽) - 这在打印到pdf之前用作中间步骤。在工作表“1”,“2”和“3”中,工作表设置的打印区域仅覆盖一个A4页面,但是当代码将所选工作表复制到新的临时工作簿时,所有行和列都增加了(增加像素)使打印区域现在覆盖几页。有人可以帮忙吗?
Sub Print_to_pdf()
Application.ScreenUpdating = False
Set Output_Sheets = Sheets(Array("1", "2", "3"))
Output_Sheets.Select
Output_Sheets.Copy
ChDir "XXX"
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"XXX\Print_to_pdf".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
ActiveWorkbook.Close savechanges:=False
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
我仍然不明白为什么你试图复制那些床单。要导出工作表,您只需使用:
Sub Print_to_pdf()
Dim Output_Sheets As Sheets
Application.ScreenUpdating = False
Set Output_Sheets = Sheets(Array("1", "2", "3"))
Output_Sheets.Select
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"c:\temp\Print_to_pdf.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.ScreenUpdating = True
End Sub
如果导出的PDF文件与任何打印机之间存在差异,则可能是由于打印机驱动程序和PDF导出引擎的差异。我看到解决这个问题的唯一方法,直到它适合两者(打印机和导出)。