PrintOut打印组而不是1组

我们在很多工作簿上都遇到这个问题,我们用VBAselect几张纸,然后用下面的一行打印出来,而Excel实际上会打印多页,而不是一组多页。

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之前放置了一个断点,那么表格select得当,我没有看到任何exception的/意外的。

任何想法 ?

我见过这个 这可能与不同的打印分辨率有关。 如果您search“打印工作簿生成多个PDF”,你会发现一些答案。 对于PDF问题,可以通过将“另存为”replace为PDF来解决(在XL 2​​010中,我猜测,2007)。