VBA复制工作表而不更改格式

时间:2017-03-06 10:03:05

标签: excel vba excel-vba

我有一个关于我的代码的问题,当我将一些工作表复制到另一个工作簿时,它会以某种方式更改格式(行高和列宽) - 这在打印到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

1 个答案:

答案 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导出引擎的差异。我看到解决这个问题的唯一方法,直到它适合两者(打印机和导出)。