用VBA将多个工作表中的相同区域打印成单独的PDF文件。

问题描述 投票:0回答:1

通过互联网上的堆栈溢出和其他来源,我发现了几个VBA代码来打印多个活动工作表到单独的PDF文件。

我想在每个工作表中使用相同的打印区域,并将PDF文件保存为单独的文件。当我试图(重新)创建代码时,我现在已经达到了以下状态,并且卡住了。更具体地说,似乎 "下一步 "之前的最后四行是错误的(在Excel VBA控制台中以红色显示并导致语法错误),但我无法确定是什么原因。 谁能在这里帮我解决一下。先谢谢大家了。

 Sub SetPrintAreas2()
     Dim sPrintArea As String
     Dim wks As Worksheet

     sPrintArea = "C8:E25"
     For Each wks In ActiveWindow.SelectedSheets
         wks.PageSetup.PrintArea = sPrintArea
         wks.PageSetup.Orientation = xlLandscape
         wks.PageSetup.PaperSize = xlPaperA4
         wks.PageSetup.CenterHorizontally = True
         wks.PageSetup.CenterVertically = True
         wks.PageSetup.FitToPagesWide = 1
         wks.PageSetup.FitToPagesTall = 1
         wks.ExportAsFixedFormat Type:=xlTypePDF, _
         Filename:=Application.ActiveWorkbook.Path & “\” & wks.Name, _
         Quality:=xlQualityStandard, _
         IgnorePrintAreas:=False, _
         OpenAfterPublish:=False
     Next
     Set wks = Nothing
     End Sub

感谢大家的帮助,使一个完全不能工作的代码完全实现了功能。这是最终工作代码的样子。

 Sub SetPrintSameAreasOfActiveSheetsAsPDFs()
     Dim sPrintArea As String
     Dim wks As Worksheet

     sPrintArea = "C8:E25"
     For Each wks In ActiveWindow.SelectedSheets
         wks.PageSetup.PrintArea = sPrintArea
         wks.PageSetup.Orientation = xlLandscape
         wks.PageSetup.PaperSize = xlPaperA4
         wks.PageSetup.CenterHorizontally = True
         wks.PageSetup.CenterVertically = True
         wks.PageSetup.FitToPagesWide = 1
         wks.PageSetup.FitToPagesTall = 1
         wks.ExportAsFixedFormat Type:=xlTypePDF, _
         Filename:=Application.ActiveWorkbook.Path & Application.PathSeparator & wks.Name, _
         Quality:=xlQualityStandard, _
         IgnorePrintAreas:=False, _
         OpenAfterPublish:=False
     Next
     Set wks = Nothing
     End Sub

它将C8: E25之间的单元格打印出来 作为PDF文件发送到同一目录下的Excel工作簿中的所有选定工作表 PDFs占用了工作表的名称。要使用它,将它作为VBA模块插入excel工作表后,进入developer选项卡,点击Macros,选择SetPrintSameAreasOfActiveSheetsAsPDFs()并按 "Run"。

excel vba printing pdf-generation
1个回答
0
投票

把这段文字改成下面的。你的"\"是错误的字符。

“\”   

改为

"\"

Application.PathSeparator
© www.soinside.com 2019 - 2024. All rights reserved.