Установить диапазон равным нескольким именованным диапазонам с разрывом строки - PullRequest
0 голосов
/ 20 февраля 2020

Я устанавливаю переменную диапазона, равную списку диапазонов. Список настолько длинный, что я хотел бы использовать разрыв строки для более удобного управления. Однако мне сложно получить синтаксис. Я перепробовал много комбинаций.

Код в одной строке работает и выглядит следующим образом (с гораздо большим количеством именованных диапазонов):

Dim xNamedRangeList As Range
Set xNamedRangeList = Range("NamedRange1, NamedRange2")

Моя лучшая попытка на данный момент заключается в следующем.

Set xNamedRangeList = " Range(""" & _
"NamedRange1," & _
"NamedRange2" &_
""")"

Debug.print выглядит следующим образом: Ranged ("NamedRange1, NamedRange2")

Хотя это работает в debug.print, оно точно не работает, когда я устанавливаю xNamedRangeList равным Это. Я думаю, что превратил формулу в строку, но не уверен, как заставить ее работать в формуле.

Ответы [ 3 ]

2 голосов
/ 20 февраля 2020

Правильный синтаксис будет таким, как показано @ TimWilliams.
Но вы говорите "с гораздо большим количеством именованных диапазонов" , поэтому обратите внимание, что длина адреса, используемого в Range(address), может иметь ограничено 255 символами. Поэтому, если у вас много диапазонов, вы можете достичь этого предела, и он не будет работать.

Если это так, вы должны использовать метод Application.Union :

Dim xNamedRangeList As Range
Set xNamedRangeList = Application.Union(Range("NamedRange1"), Range("NamedRange2")) 

Разрывы строк всегда Пробел с последующим подчеркиванием _ и Введите .

Set xNamedRangeList = Application.Union(Range("NamedRange1"), _
Range("NamedRange2")) 
2 голосов
/ 20 февраля 2020
Set xNamedRangeList = Range("NamedRange1," & _
                            "NamedRange2," & _
                            "NamedRange3")
0 голосов
/ 20 февраля 2020

Если NamedRange1 и NamedRange2 являются переменными, попробуйте:

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