/ / मुद्रण के लिए संपूर्ण शीट्स चुनें: एक्सेल वीबीए - एक्सेल, वीबीए, एक्सेल-वीबीए, पीडीएफ

मुद्रण के लिए संपूर्ण पत्रक चुनें: एक्सेल वीबीए - एक्सेल, वीबीए, एक्सेल-वीबीए, पीडीएफ

मैंने वर्कबुक की विशिष्ट शीट को एक पीडीएफ में निर्यात करने के लिए एक 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