2

我的代码的问题是它要么保存工作簿中所有工作表中的所有页面,要么只保存“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);
4

3 回答 3

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
于 2012-08-06T22:41:37.150 回答
0

这是答案:ActiveSheet.PageSetup.Pages.Count

于 2012-08-08T18:45:58.903 回答
-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

结束子

通过传入逗号分隔的要导出的工作表列表来调用它

Export 1, 2, 4
于 2012-08-06T20:40:26.877 回答