通过互联网上的堆栈溢出和其他来源,我发现了几个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"。
把这段文字改成下面的。你的"\"是错误的字符。
“\”
改为
"\"
或
Application.PathSeparator