मैंने वर्कबुक की विशिष्ट शीट को एक पीडीएफ में निर्यात करने के लिए एक VBA मैक्रो बनाया। काफी सरल। मुझे जो समस्या आ रही है, वह यह है कि मेरा कोड केवल उसी भाग का चयन करता है Sheet4
, इसलिए मेरे पीडीएफ में शीट का हिस्सा गायब है।
Sheet4
सीमा में डेटा शामिल है A1:W80
। हालांकि, केवल सीमा के नीचे कोड चलाते समय A1:W75
मुद्रण के लिए चुना गया है। मैंने अपनी पुष्टि की है PrintArea
पूरा पृष्ठ समाहित करता है। छपाई करते समय भी सब कुछ बहुत अच्छा लगता है।
मैंने बिना किसी समाधान के अंतहीन खोज की हैसफलता। क्या यह पृष्ठ-लेआउट सेटिंग समस्या हो सकती है? पीडीएफ को निर्यात करते समय, मैं यह सुनिश्चित कर सकता हूं कि मैं इसके पूरे हिस्से के बजाय पूरी शीट का चयन करूं?
मेरा कोड यहाँ है:
Sub SaveReportPDF()
Dim filepath As String
filepath = "ABC"
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")).Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=filepath, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
उत्तर:
जवाब के लिए 3 № 1अच्छे अभ्यास के रूप में, आप प्रत्येक शीट की अपनी उपयोग की गई सीमा को प्रिंट क्षेत्र के रूप में सेट कर सकते हैं, और निम्न उप का उपयोग करके इसे पृष्ठ पर फिट कर सकते हैं:
Sub ScaleForPrinting()
Dim sh As Worksheet
" Stop PrintCommunication for speed
Application.PrintCommunication = False
" Cycle through each sheet
For Each sh In ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4"))
" Set print area to used range of sheet
sh.PageSetup.PrintArea = sh.UsedRange
" Remove zoom, scale sheet to fit 1 page
With sh.PageSetup
.CenterHorizontally = True
.CenterVertically = True
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Next sh
" Enable PrintCommunication to apply settings
Application.PrintCommunication = True
End Sub
तब आप इसका उपयोग करना चाहेंगे ActiveSheet
वस्तु चयन के बाद, बजाय Selection
वस्तु। यह शायद प्रति-सहज है, लेकिन आप इसे प्रिंट करना चाहते हैं पत्रक ऐसा नहीं है जिसे आपने चुना है चादरों में.
इसलिए:
ScaleForPrinting
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=filepath, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
" Deselect sheets to avoid nasty multiple sheet accidental editing!
ThisWorkbook.Sheets("Sheet1").Select