2017-04-05 1 views
2

J'ai une macro pour exporter certaines feuilles dans un classeur pour séparer les PDF (à des fins de reporting). Il fonctionne correctement pour moi dans un classeur, cependant, dans un classeur différent, il exporte toutes les feuilles. Je ne peux pas comprendre où je vais mal. Pour rendre les choses plus faciles, j'ai mis en italique les endroits où je le personnalisais pour mes besoins.Macro pour exporter certaines feuilles Excel pour séparer PDF

Des idées où je me suis trompé? Merci d'avance.

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

Pleas formater votre code comme un code. C'est très difficile à lire. – Kyle

+0

Désolé à ce sujet - juste changé. –

+0

Cela les exporte tous parce que vous faites «Pour chaque ws dans Worksheets». Cela parcourt chaque feuille de calcul dans le classeur et l'exporte. – Kyle

Répondre

1

Vous devez remplir le tableau sheets_to_select avec les noms des feuilles que vous voulez ce exporter. Sinon, cela fonctionnera pour vous.

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

Bonne question! Je pense que cela devrait faire ce que vous voulez ... jsut modifier le script pour répondre à vos besoins ...

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