我有一个VBA出版的宏在Excel其产生的一个出版工作簿的基础上的一个主配置的工作表和一些工作单的数据。所公布的版本是直线数据,依然格式,但没有公式和与某些注释和背景信息抑制。基本上,主结构包含一个表格的工作表名称和范围可以发布。

做的出版印刷版本,一些工作需要分页插入。我意识到我可以将这些基于同样的结构,我也可以改变的印刷方向和利润率的一个特别工作表,通过增加一些更多的列为我的主片。

这里涉及的棘手的位。如果一个表格有一些页符插在出版过程中,我想是一个信息行之前插入网页的突破,表示该表是继续在下一页。但我只想要这个出现在印刷版本,没有显示在屏幕上显示。

有没有办法做到这一点?

有帮助吗?

解决方案

第一,插入一个行和隐藏它之前刚刚分页。然后,你可以使用 BeforePrint 事件的工作簿上找到的所有行的"看看下一页"文本,和然后取消它们。

Sub Workbook_BeforePrint(cancel as Boolean)
    Dim rngCell as Range
    set rngCell = ActiveSheet.UsedRange.Find("See Next Page")

    while not rngCell is Nothing
        if not rngCell is Nothing then
            rngCell.EntireRow.Hidden = false
        end if
        set rngCell = ActiveSheet.UsedRange.FindNext()
    loop
End Sub

这会让你有点被你需要去,但是,它会让你容易受到这个问题的事实,那就是没有 AfterPrint.所以,你可以做什么如下:

Sub Workbook_BeforePrint(cancel as Boolean)
    Application.EnableEvents = false

    'Unhide rows here

    if cancel then
        Workbook.PrintPreview()
    else
        Workbook.PrintOut()
    end if

    'Rehide rows here

    Application.EnableEvents = True
End Sub

注意, cancel 基本上会告诉你如果它打印预览或一个实际的打印的命令。它很好,我想。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top