Добавление нескольких диапазонов в область печати - PullRequest
0 голосов
/ 07 июня 2018

У меня двенадцать различных диапазонов, которые мне, возможно, придется включить в область печати.Вот часть моего кода:

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 голосов
/ 07 июня 2018

Область печати - 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

В обоих последних примерах получается строка, подобная приведенной в 1-м примере.

Интересно, что установка области печати таким разбросанным способом приводит к печати всех отдельных диапазонов на отдельных страницах.Я не знаю, как это решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...