首页 > 解决方案 > 计算打印区域的最后剩余空白行

问题描述

我正在寻找一个 Excel VBA 代码,它可以计算打印区域页面(横向)的最后剩余行,并确定是否有足够的行数可以将文本从另一个工作表复制/粘贴到活动工作表。

例如:

我在 excel 中有一个发票模板。发票最后以总计结束。我想每次在总计下的一个空白行之后添加我的条款和条件政策。我的T&C由三个段落组成,它们位于一个合并的单元格中,该单元格占用一行空间。14

发票可以转到任意数量的页面,我的要求是,在总计出现的任何最后一页上,如果有那么多行不可用,那么它下面至少应该有 16 行的空间来复制/粘贴T&C T&C应自动移至下一页。基本上,我不希望将T&C一半打印在两个单独的页面上。我在一个单独的工作表上有T&C,我需要将其复制/粘贴到活动工作表,即总帐下的发票工作。我希望一切都有意义。

这是我正在寻找的随附演示视频。任何帮助将不胜感激。先感谢您。

https://imgur.com/CP5Q7RL

标签: excelvba

解决方案


尝试

Sub test()
    Dim Ws As Worksheet, Ws2 As Worksheet
    Dim Target As Range
    Dim myRow As Integer
    Dim cnt As Integer, r As Long, n As Integer

    cnt = 34 '<~~  Sheet 1 page rows count + 1
    Set Ws = Sheets(1)
    Set Ws2 = Sheets(2)
    With Ws
        Set Target = .Cells.Find("Grand Total")
        n = .HPageBreaks.Count
        r = (n + 1) * cnt
        If r - Target.Row > 16 Then
            myRow = Target.Row + 2
        Else
            myRow = r
        End If
        Ws2.Range("a1").MergeArea.Copy .Range("a" & myRow)
    End With

End Sub

推荐阅读