PrintOut打印纸张组而不是1组

时间:2013-06-19 19:27:58

标签: excel vba excel-vba printing excel-2007

我们在许多工作簿中遇到此问题,我们使用VBA选择一些工作表并使用以下行打印它们,Excel实际上将打印多个页面而不是一组多页。< / p>

ActiveWindow.SelectedSheets.PrintOut

以下是具有此行为的Sub示例:

Private Sub imprimer(iColTypeRapport As Integer)
    Dim cell As range, rangeImpr As range, colonne As range
    Dim debute As Boolean ' True seulement si on a déjà sélectionné une feuille

    On Error GoTo erreur

    application.ScreenUpdating = False

    debute = False
    Set rangeImpr = ActiveSheet.range("impression")
    Set colonne = rangeImpr.Offset(0, iColTypeRapport).EntireColumn

    For Each cell In rangeImpr
        If LCase(Intersect(cell.EntireRow, colonne)) = "o" Then
            If Not debute Then
                Worksheets(cell.Value).Select
                debute = True
            Else
                Worksheets(cell.Value).Select False
            End If
        End If
    Next cell

    ActiveWindow.SelectedSheets.PrintOut

    Worksheets("TableauDeBord").Select
    application.ScreenUpdating = True
    Exit Sub

erreur:
    Call GestionErreur(Err.Number, Err.Description, "modRequete", "ImportData")
End Sub

如果我们使用Print2PDF或AdobePDF打印,这会更加明显,因为它会提示文件名多次(在本例中为3次)。

如果我在PrintOut之前设置了一个断点,那么表格被恰当地选中,我看不到任何异常/意外。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我见过这个。它可能与不同的打印分辨率等事情有关。如果您搜索“打印工作簿生成多个pdf”,您将找到一些答案。特别是PDF问题,可以通过对PDF进行“另存为”来解决(在XL 2​​010中,我猜,2007年)。