2017-03-14 1 views
2

C'est le code actuel que j'ai - et j'obtiens toujours une plage d'erreur d'exécution de 1004. Des idées comment je peux résoudre ce problème?Plusieurs plages Excel à PDF

Sub ToPDF() 
' 
' Macro2 Macro 
' 

' 
    Sheets("KPIs").Select 
    Range("B3:Y46,AA3:AX46,AZ3:BW46,BY3:CV46,CX3:DU46,DW3:ET46,EV3:FS46,B48:Y91,AA48:AX91,AZ48:BW91,BY48:CV91,CX48:DU91,DW48:ET91,EV48:FS91,B93:Y136,AA93:AX136,AZ93:BW136,BY93:CV136,CX93:DU136,DW93:ET136,EV93:FS136,B138:Y181,AA138:AX181,AZ93:BW181,BY138:CV181,CX138:DU181").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
      "C:\Users\strzelecki-e\Desktop\Macros\KPIs.pdf", Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 

End Sub 

Répondre

0

changement Sheets("KPIs").Select-Sheets("KPIs").Activate. Surtout avec des versions plus récentes d'Excel .Select a été signalé pour créer des erreurs.

Range("B3:Y46,AA3:AX46,AZ3:BW46,BY3:CV46,CX3:DU46,DW3:ET46,EV3:FS46,B48:Y91,AA48:AX91,AZ48:BW91,BY48:CV91,CX48:DU91,DW48:ET91,EV48:FS91,B93:Y136,AA93:AX136,AZ93:BW136,BY93:CV136,CX93:DU136,DW93:ET136,EV93:FS136,B138:Y181,AA138:AX181,AZ93:BW181,BY138:CV181,CX138:DU181")

C'est trop long. Il semble y avoir une limite de 255 caractères entre les citations et (pour l'instant) il y a 260 caractères. Si vous n'enlevez que la dernière partie et que vous la réduisez à 255 caractères, cela fonctionnera.

Sinon, vous pouvez également effectuer les opérations suivantes:

Dim r As Range 

ThisWorkbook.Worksheets("KPIs").Activate 

Set r = ThisWorkbook.Worksheets("KPIs").Range("B3:Y46,AA3:AX46,AZ3:BW46,BY3:CV46,CX3:DU46,DW3:ET46,EV3:FS46,B48:Y91,AA48:AX91") 
Set r = Union(r, ThisWorkbook.Worksheets("KPIs").Range("AZ48:BW91,BY48:CV91,CX48:DU91,DW48:ET91,EV48:FS91,B93:Y136,AA93:AX136,AZ93:BW136,BY93:CV136,CX93:DU136,DW93:ET136,EV93:FS136")) 
Set r = Union(r, ThisWorkbook.Worksheets("KPIs").Range("B138:Y181,AA138:AX181,AZ93:BW181,BY138:CV181,CX138:DU181")) 
r.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\tmp\KPIs.pdf", Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 

Fondamentalement, j'ai simplement diviser la gamme en plusieurs morceaux plus courts et add ensemble avec union à la plage finale que vous avez demandé.

+0

Le code fonctionne, mais im ayant des problèmes avec les cartes étant trop petit et puis 2 des cartes sont sur la même page. – Emily

+0

Pouvez-vous m'aider avec le dimensionnement des cartes et les 2 cartes sur la même page chose par hasard? Et je ne peux pas voter parce que je suppose que je suis toujours encore un débutant ici :) – Emily

+0

Si vous avez une nouvelle question alors s'il vous plaît n'hésitez pas à poster une nouvelle question. Je serai heureux de le voir (comme tous les autres ici). Mais il me semble que vous voulez changer la mise en forme du résultat PDF. Pourtant, le faire sans définir les sauts de page, les zooms, les mises en page est presque impossible. Ainsi, vous devrez probablement créer un nouveau fichier Excel (ou feuille) dans le seul but d'imprimer. Dans ce fichier Excel (ou feuille), vous pouvez correctement formater tout ce que vous voulez et ensuite imprimer au format PDF avec la commande ci-dessus. – Ralph