首页 > 解决方案 > PageSetup.PrintArea 用于分隔的多个范围

问题描述

我有以下代码将工作表中的选定范围导出为 .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方法,但它给了我相同的结果。

任何帮助将不胜感激!

标签: excelvbarange

解决方案


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


推荐阅读