【问题标题】:Setting print area for a whole page设置整页的打印区域
【发布时间】:2015-02-11 15:54:34
【问题描述】:

所以这是我的问题: 我有一个模板表,其中粘贴了数据。数据行的数量总是不同的(我认为它永远不会高于 30,但我编码的容量为 103) 数据粘贴完成后,sub 应该相应地设置打印区域和边框,但不是到最后一行数据,而是到包含数据的最后一页。我写了这个丑陋,它似乎工作。我确实想知道是否有一种方法可以在不嵌套 IF 语句的情况下执行此操作(对于更大的数据集,我将不得不重新执行此操作)

parow = wsp.Range("A" & Rows.Count).End(xlUp).row
    If parow <= 15 Then
        parow = 15
    Else:
        If parow <= 29 Then
            parow = 29
        Else
        If parow <= 43 Then
            parow = 43
        Else
            If parow <= 58 Then
                parow = 58
            Else
                If parow <= 73 Then
                    parow = 73
                Else
                    If parow <= 88 Then
                        parow = 88
                    Else
                        If parow <= 103 Then
                            parow = 103
                        Else
                        End If
                    End If
                End If
            End If
        End If
        End If
    End If

With wsp.PageSetup
    .PrintArea = "$A$1:$G" & parow
    .PrintTitleRows = "$1:$1"
    .Orientation = xlLandscape
    .FitToPagesWide = 1
End With

【问题讨论】:

    标签: vba if-statement printing


    【解决方案1】:

    不要乱七八糟的 if,试试这个:

    Dim parow As Long
    Dim dif As Long
    parow = wsp.Range("A" & Rows.Count).End(xlUp).row
    dif = 14 - (parow mod 14)
    parow = parow + dif + 1
    

    从您的问题看来,您希望将 parow 向上舍入到最接近 14 的倍数,然后打印那么多行 + 1。

    考虑到这一点,此代码首先像您最初一样获取 parow,然后计算出需要添加的内容以将其四舍五入为 14 的下一个倍数。最后,它将该值 + 1 添加到 parow。对于较短(但可读性较差)的选项,只需使用

    parow = wsp.Range("A" & Rows.Count).End(xlUp).row
    parow = parow + (14 - (parow mod 14)) + 1
    

    【讨论】:

    • 好的,我在添加打印标题之前使用过它,但是每当 parow 等于 14 的倍数时,它会添加一个额外的空白页面,而不是保持原样。我想我可以添加一个 if 循环来检查这一点。
    • 想通了! parow = wsp.Range("a" &amp; Rows.Count).End(xlUp).row If Not (parow-1) Mod 14 = 0 then parow = parow+ (parow mod 14) Else End If
    猜你喜欢
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多