【发布时间】:2013-06-16 11:40:47
【问题描述】:
我们在许多工作簿上都有这个问题,我们使用 VBA 选择几张工作表并使用以下行打印它们,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 之前设置断点,则正确选择了工作表并且我没有看到任何异常/意外。
有什么想法吗?
【问题讨论】:
-
如果您从 Excel 界面选择并打印它们,您会得到相同的行为吗?
-
进入常规打印界面。你可能有设置打印 3 份的东西吗?
-
是的,我愿意!由于不连续的工作表选择(这是我的第一个猜测),它似乎没有发生,但我无法弄清楚为什么会有页面组。在这种情况下,甚至有一个单独打印的页面(即 1 组)。我检查了它们是否都具有相同的格式并且确实如此。
-
那么,分组不对应工作表?
-
我见过这个。它可能与不同的打印分辨率有关。如果您搜索“打印工作簿生成多个 pdf”,您会找到一些答案。特别是对于 PDF 问题,可以通过对 PDF 执行“另存为”来解决(在 XL 2010 中,我猜是 2007 年)。
标签: vba excel printing excel-2007