PageSetup.PrintArea用于分离的多个范围

时间:2018-09-19 17:14:51

标签: excel vba range

我有以下代码将工作表中的选定范围导出为.pdf文件:

    'More coding above
    With Sheet7
        If (CheckBox1.Value = True And CheckBox2.Value = True) Then
            .PageSetup.PrintArea = "A8:M80"
        ElseIf (CheckBox1.Value = True And CheckBox2.Value = False) Then
            .PageSetup.PrintArea = "A8:M55"
        ElseIf (CheckBox1.Value = False And CheckBox2.Value = True) Then
            .PageSetup.PrintArea = "A8:M32, A56:M80"
        Else
            MsgBox 'At least one option must be selected!'
            Exit Sub
        End If
     End With
     'More coding below

但是,当仅选中CheckBox2时,将仅选择If/Else设置的区域来生成文件,但仍显示范围之间的A33:M55差距。

无论如何,我是否可以消除这一差距?我希望代码将两个范围都打印为一个。

我尝试了Union方法,但是它给了我相同的结果。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

最简单的方法是在打印到PDF之前,暂时隐藏不必要的行。这样,您应该确保在宏之后所有行都是可见的(此外,您可以使用On Error GoTo并取消隐藏以防万一)