我所拥有的代码的问题是它将所有页面保存在工作簿中的所有工作表中,或者只保存“from”和“to”参数指定范围内的页面。
我正在使用的excel文件有7个工作表,每个工作表可以有任意数量的页面。例如,如果我指定要从“1到4”导出,则只将第一个工作表的前4页导出为PDF文档,而不是前4个工作表的所有页面。
有人可以告诉我如何实现我想要做的事情吗?下面的代码不是我想要的:
application.ActiveWorkbook.ExportAsFixedFormat(
Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF,
path,
Excel.XlFixedFormatQuality.xlQualityStandard,
true,
true,
1,
4,
false,
Missing.Value);
答案 0 :(得分:2)
如果您在选择多张纸之后使用ActiveSheet.ExportAsFixedFormat
,我认为它会做您想要的(只要您在每张选定的纸张上设置了打印区域)。
沿着这些线记录的原始宏:
Sheets(Array("Sheet1", "Sheet2")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\yourusername\Desktop\Book1.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= False
答案 1 :(得分:0)
以下是答案:ActiveSheet.PageSetup.Pages.Count
答案 2 :(得分:-1)
Public Sub Export(ParamArray ToPrint() As Variant)
'hide all sheets
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Hide
Next Sheet
'unhide sheets to print
For Each pageNo In ToPrint
ActiveWorkbook.Sheets(pageNo).Show
Next pageNo
'do the export
Worksheet.ExportAsFixedFormat _
Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, _
Path, _
Excel.XlFixedFormatQuality.xlQualityStandard, _
True, _
True, _
Nothing, _
Nothing, _
False, _
Missing.Value
'unhide all sheets
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Show
Next Sheet
End Sub
通过传入逗号分隔的工作表列表来调用它来导出
Export 1, 2, 4