我有十二个不同的范围,我可能需要包括在打印区域。 到目前为止,这是我的代码的一部分:
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
这样的代码有几行,我知道这种类型的编码不是好的做法,但我需要快速完成这个项目。 我的问题是如何在打印区域添加所需的范围,因为现在它似乎只打印了最新的打印区域范围?
答案 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
两个最新的例子都会产生类似第一个例子中的字符串。
有趣的是,以这种分散的方式设置打印区域会导致打印所有单独的范围以使页面显示。我不知道如何解决它。