Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 向打印区域添加多个范围_Vba_Excel_Printing - Fatal编程技术网

Vba 向打印区域添加多个范围

Vba 向打印区域添加多个范围,vba,excel,printing,Vba,Excel,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 有几行这样的代码,我

我有十二个不同的范围,我可能需要包括打印区域。 以下是迄今为止我的部分代码:

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
有几行这样的代码,我知道这种类型的编码不是很好的实践,但我需要尽快完成这个项目。
我的问题是如何将所需范围添加到打印区域,因为现在似乎只打印设置为打印区域的最新范围?

打印区域是一个
字符串,而不是
对象。所以你可以这样写:

.PrintArea = "$A$19:$J$32, $A$11:$J$17, $A$34:$J$38"
或者您可以使用
字符串
变量。如果您坚持使用范围,请按以下方式使用
.Address

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

两个最新的示例都会生成一个类似于第一个示例中的字符串


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

像这样的问题越来越多。看看这里,例如:
Set rUni = Union(rng1, rng2)
.PrintArea = rUni.Address