2017-04-05 93 views
2

我有一個宏導出工作簿中的某些工作表以分離PDF(用於報告目的)。它適用於我在一個工作簿中,但是,在不同的工作簿中,它將導出所有工作表。我無法弄清楚我錯在哪裏。爲了讓事情變得更容易,我將我定製的地方用於我的目的。宏導出某些Excel工作表以分開PDF

任何想法,我哪裏出錯了?提前致謝。

Sub ExportToPDFs() 
' PDF Export Macro 
' C:\ *location* 
' Sheets(Array("*selected sheets*")).Select 

Dim nm As String 
Dim ws As Worksheet 

For Each ws In Worksheets 
ws.Select 
nm = ws.Name 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
Filename:="C:\*location*" & "*Report Title*" & nm & Range("D8").Value & ".pdf", _ 
Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, OpenAfterPublish:=True 

Next ws 

End Sub 
+0

請將您的代碼格式化爲代碼。這是非常難以閱讀的。 – Kyle

+0

對不起 - 只是改變了它。 –

+0

因爲你爲'工作表中的每個工作表'而做的全部導出它們。這循環遍歷工作簿中的每個工作表並導出它。 – Kyle

回答

1

您需要填寫數組sheets_to_select並輸入希望導出的工作表名稱。否則,這將適用於你。

Sub ExportToPDFs() 
' PDF Export Macro 
' C:\ *location* 
' Sheets(Array("*selected sheets*")).Select 

Dim nm As String 
Dim ws As Worksheet 
Dim i as Variant, sheets_to_select as Variant 

sheets_to_select = Array("Sheet1","Sheet2","Sheet3") 

For Each i in sheets_to_select 
    Thisworkbook.Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _ 
     Filename:="C:\*location*" & "*Report Title*" & i & Thisworkbook.Sheets("*The sheet you need the value of D8 from").Range("D8").Value & ".pdf", _ 
     Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
     IgnorePrintAreas:=False, OpenAfterPublish:=True 

Next i 

End Sub 
0

好問題!我認爲這應該做你想做的... ...修改腳本以適應您的需求...

Sub ExportToPDFs() 

Dim ws As Worksheet 

For Each ws In Worksheets 
ws.Select 
nm = ws.Name 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
Filename:="C:\your_path_here\" & nm & ".pdf", _ 
Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, OpenAfterPublish:=False 

Next ws 

End Sub