将多个范围添加到打印区域

时间:2018-06-07 13:35:45

标签: excel vba excel-vba printing

我有十二个不同的范围,我可能需要包括在打印区域。 到目前为止,这是我的代码的一部分:

With ActiveSheet.PageSetup
    If 'condition is met' Then
        .PrintArea = Range(rng1)
        .PrintArea = Union(Range(.PrintArea), rng1).Address
    End If
    'more lines of like code
End With

这样的代码有几行,我知道这种类型的编码不是好的做法,但我需要快速完成这个项目。 我的问题是如何在打印区域添加所需的范围,因为现在它似乎只打印了最新的打印区域范围?

1 个答案:

答案 0 :(得分:1)

打印区域为String,而不是Object。所以你可以这样写:

.PrintArea = "$A$19:$J$32, $A$11:$J$17, $A$34:$J$38"

或者您可以使用String变量。如果您坚持使用范围,请以这种方式使用.Address

Dim rng1 As Range, rng2 As Range, rUni As Range
.PrintArea = rng1.Address & "," & rng2.Address

Set rUni = Union(rng1, rng2)
.PrintArea = rUni.Address

两个最新的例子都会产生类似第一个例子中的字符串。

有趣的是,以这种分散的方式设置打印区域会导致打印所有单独的范围以使页面显示。我不知道如何解决它。