2014-12-23 4 views
0

여러 시트를 항상 같은 크기로 가져 오려면 크기를 조정해야하며 모든 것을 PDF 파일로 저장해야합니다. 나는 VBA를 모른다. 그래서 나는 여기 저기에서 조각을 얻는 "frankestein code"를하고있다.여러 시트의 크기를 조정하고 PDF로 저장

내가 얻는 것은 T1 시트에 대해서는 작동하지만 다른 T2 및 T3 시트에는 작동하지 않는 코드입니다. 어떻게 포함시킬 수 있습니까 ?? 이 루프에서 세 개의 시트의 인쇄 영역을 코드를합니다, 당신은 짧은 루프의 마지막 행을 얻을 부분을 대체하고 설정

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 

답변

0

다음은이 작업을 수행하는 하나의 방법입니다 .

그런 다음 배열의 SELECT 문에 표시된 것과 동일한 세 개의 PDF를 모두 인쇄합니다. 검증되지 않은

는 :

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 
+0

여기 문제가 영업 이익은 ONE PDF로 그들 모두를 인쇄 할 것을 생각합니다. 나는 틀릴 수있다. 그렇지 않으면 배열을 멋지게 사용합니다. – peege

1

:

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 
관련 문제