Excel 仅打印选定的工作表。。。但活动纸张会继续打印
我正在尝试循环浏览所有活动的工作表,并将它们保存为单独的PDFExcel 仅打印选定的工作表。。。但活动纸张会继续打印,excel,vba,Excel,Vba,我正在尝试循环浏览所有活动的工作表,并将它们保存为单独的PDF dim ws as worksheet dim path as string ... For Each ws In ActiveWindow.SelectedSheets ws.ExportAsFixedFormat _ xlTypePDF, _ Filename:=path & ws.Name, _ Quality:=xlQualityStandard, _
dim ws as worksheet
dim path as string
...
For Each ws In ActiveWindow.SelectedSheets
ws.ExportAsFixedFormat _
xlTypePDF, _
Filename:=path & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenafterPublish:=False
Next
这类工作:
将为正确文件夹中的每个选定图纸创建PDF文件。。。但是
这些PDF文件的内容都是相同的。它是每次打印的活动页,但文件名不同
如何解决这个问题?请记住,我只希望打印选定的图纸
编辑:我太新了,不能投票。谢谢你的回答 打印前需要选择纸张。
Option Explicit
Sub Save_SelectedSheets_AsPdf()
Dim ws As Worksheet
Dim path As String
Dim actSheet As Worksheet
'...
Set actSheet = ActiveSheet
For Each ws In ActiveWindow.SelectedSheets
ws.Select
ws.ExportAsFixedFormat _
xlTypePDF, _
Filename:=path & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenafterPublish:=False
Next
actSheet.Select
End Sub
Sub Create_5_Sheets_and_name_them()
Dim iCt As Integer
For iCt = 2 To 5
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Sh" & iCt
Range("A1").Value = ActiveSheet.Name
Next iCt
End Sub
只需在ws.ExportAsFixedFormat之前添加命令ws.Select,它就会工作:
For Each ws In ActiveWindow.SelectedSheets
ws.Select '<-- the only thing you have to add.
ws.ExportAsFixedFormat _
xlTypePDF, _
Filename:=path & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenafterPublish:=False
Next
除此之外:
提示1:为了避免看到工作表一次又一次地跳转,您可以在循环开始之前添加Application.screenUpdate=False,然后在循环结束时将其设置回Application.screenUpdate=True。
提示2:为了方便用户,您可以在循环开始时使用Dim currentlySelectedSheet作为工作表获取当前活动的工作表:设置currentlySelectedSheet=ActiveSheet,循环结束时,您只需使用currentlySelectedSheet将其重新选择。选择此选项,以便用户在运行宏时不会在屏幕上看到任何更改。
在将其导出为pdf之前,可以这样指定它
打印区域可能有问题?是的,添加ws.select有效!我没想到这是必要的。谢谢你给我的其他建议。很好的触摸将用户放回到他们开始的地方。谢谢。我认为第二个子项是创建选项卡来测试第一个子项?