如何在工作表

时间:2017-10-05 13:38:00

标签: excel vba

我构建了一个宏,可以将部分工作表导出为pdf文件。这个工作正常,除了一个表。

实际上我只需要占用表格的第一行和最后三行。导出正常,但在不同的pdf页面上打印出每个选定的部分。我希望它在同一页面上。 (如果我手动隐藏表中不需要的行,请选择范围并使用Ctrl-P进行打印。)

这是我的代码:

'Parcours la plage Accueil contenant les onglets et zones
LastRow = Range("C23").End(xlDown).Row
'Lance l'export pour chaque ligne de la plage
For i = 24 To LastRow
    SheetName = Cells(i, 3)
    PrintArea = Cells(i, 4)
    Name = Cells(i, 2)
    If Cells(i, 6) <> "" Then
        Worksheets(SheetName).Rows(Cells(i, 6).Value).EntireRow.Hidden = True
    End If
    With Worksheets(SheetName)
        .Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
        .Range(ColToHide).EntireColumn.Hidden = True
        .Range(PrintArea).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "" & chemin & "\" & Name & "_" & an & "-" & mois & ".pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
        .Range(ColToHide).EntireColumn.Hidden = False
    End With
Next i

由于

1 个答案:

答案 0 :(得分:0)

看起来我在以一种奇怪的方式思考。

在我的手动测试中,我选择了整个表格,但隐藏了我不想要的行然后打印。宏正在隐藏行,仍然在一个中选择2个不同的范围。

我所要做的就是更改'ACCUEIL'表中的目标范围(printarea)。我放A18:Y20,A25:Y28而不是A18:Y28而是有效。