调整几张纸并保存为PDF

我需要resize的几张纸,以使他们始终在相同的大小…然后将其全部保存为PDF文件。 我不认识VBA,所以我正在做一个“frankestein代码”在这里和那里。

我得到的是以下代码,适用于T1工作表,但不适用于其他T2和T3工作表。如何包含它们?

Sub Imprimir_PDF() Dim ws As Worksheet Dim lastRow As Long Set ws = ThisWorkbook.Sheets("T1") 'find the last row with formatting, to be included in print range lastRow = ws.UsedRange.SpecialCells(xlCellTypeLastCell).Row ws.PageSetup.PrintArea = ws.Range("A2:CK" & lastRow).Address ThisWorkbook.Sheets(Array("T1", "T2", "T3")).Select Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\PaintChecker\Camadas\temp.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True End Sub 

这需要你的代码,并用短循环代替你得到最后一行的部分,并在循环中设置所有三个页面的打印区域。

然后将所有三个打印到您的数组中select语句所指示的相同PDF中。

未经testing:

 Sub Imprimir_PDF() Dim lastRow As Long Dim count As Long Dim sheet As String 'find the last row with formatting, to be included in print range For count = 1 To 3 sheet = "T" & count lastRow = Sheets(sheet).UsedRange.SpecialCells(xlCellTypeLastCell).row Sheets(sheet).PageSetup.PrintArea = Sheets(sheet).Range("A2:CK" & lastRow).Address Next count ThisWorkbook.Sheets(Array("T1", "T2", "T3")).Select Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _ fileName:="C:\PaintChecker\Camadas\temp.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True End Sub 

这里有一个方法来做到这一点:

 Sub MakePDFs() Dim sheetsToTouch As Variant sheetsToTouch = Array("T1", "T2", "T3") Dim sheetName As Variant For Each sheetName In sheetsToTouch Sheets(sheetName).Activate ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("A2:CK" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row).Address ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\PaintChecker\Camadas\" & sheetName & ".pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True Next End Sub