2014-03-05 42 views
0

我發現了一個將excel工作表打印到PDF的宏,我希望能夠跨多個工作表執行此操作,而無需使用工作表名稱,而是使用工作表索引。 我希望根據每個工作表中的範圍保存pdf(這個範圍在所有工作表中都是相同的)。將excel工作表打印到多個pdf

繼承人我有什麼:

Sub exceltoPDF1() 
'Saves the excel print area to a PDF file 

Dim fp As String 
Dim wb As Workbook 
Dim ws As Worksheet 
Dim rng As Range 

Worksheets(1).Activate 
Set rng = Worksheets(1).Range("A1") 
'\\MNACPFS01\Home\sramdeo\Desktop\stuff 
i = rng 
fp = "\\MNACPFS01\Home\sramdeo\Desktop\stuff " 
'fp = "H:\2013_FY148\07_OCT13\4. PROGRAM DOCS\APR\ " & "rng.pdf""" 
Set wb = ActiveWorkbook 
Set ws = Worksheets(1) 

ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=i, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True 


End Sub 

回答

0

這將通過使用工作表的索引包含在您的工作簿wb所有工作表:)

Sub exceltoPDF1() 
    'Saves the excel print area to a PDF file 

    Dim fp As String 
    Dim wb As Workbook 
    Dim rng As Range 

    Set wb = ActiveWorkbook 

    Dim intWS As Integer 
    For intWS = 1 To wb.Worksheets.Count 
     With wb.Worksheets(intWS) 
      Set rng = .Range("A1") 
      '\\MNACPFS01\Home\sramdeo\Desktop\stuff 
      i = rng 
      fp = "\\MNACPFS01\Home\sramdeo\Desktop\stuff " 
      'fp = "H:\2013_FY148\07_OCT13\4. PROGRAM DOCS\APR\ " & "rng.pdf""" 

      .ExportAsFixedFormat Type:=xlTypePDF, _ 
            Filename:=i, _ 
            Quality:=xlQualityStandard, _ 
            IncludeDocProperties:=False, _ 
            IgnorePrintAreas:=False, _ 
            OpenAfterPublish:=True 
     End With 
    Next intWS '<--- Change this from "i" to "intWS" 

End Sub 
+0

嘿,所以我嘗試過了,我得到了編譯錯誤:無效的下一個控制可變參考 – user3384931

+0

@ user3384931;我的錯。這是因爲我以'i'作爲索引開始,但是看到您已經在代碼中使用了它,所以我將其更改爲'intWS',但忘記更新'Next'旁邊的那個。我只是在我的答案中改變了它。 –

+0

嘿非常感謝!它非常完美! – user3384931

0

子Cetak_Sampul(

Dim StartmRow As Integer 
Dim EndmRow As Integer 
Dim Msgm As String 
Dim a As Integer 

Sheets("Cvr").Activate 
StartmRow = Range("RA") 
EndmRow = Range("RW") 

If StartmRow > EndmRow Then 
    Msgm = "ERROR" & vbCrLf & "Record awal ga boleh lebih dari record akhir!" 
    MsgBox Msgm, vbCritical, APPNAME 
End If 

For a = StartmRow To EndmRow 
    Range("ON") = a 
    If Range("PR") Then 
     ActiveSheet.PrintPreview 
    Else 
     ActiveSheet.PrintOut 
    End If 
Next a 

End Sub

(如何讓打印成PDF,與文件名保存爲範圍(「ON」) 該文件是here 裝飾的

相關問題