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 2010中,我猜测,2007)。