我们在许多工作簿上都有这个问题,我们使用 VBA 选择几张工作表并使用以下行打印它们,Excel 实际上将打印多组页面而不是一组多页。
ActiveWindow.SelectedSheets.PrintOut
Sub
这是具有此行为的 a 示例:
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 之前放置了一个断点,则适当地选择了工作表,并且我没有看到任何异常/意外。
任何想法 ?