设置范围等于带有换行符的多个命名范围

问题描述 投票:0回答:3

我将范围变量设置为等于范围列表。该列表太长了,我想使用换行符来简化管理。但是,我很难获取语法。我尝试了很多组合。

一行中的代码有效,看起来像这样(具有更多的命名范围):

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

到目前为止,我最大的尝试就是这个。

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

Debug.print看起来像这样:Ranged(“ NamedRange1,NamedRange2”)

虽然这在debug.print中有效,但是当我将xNamedRangeList设置为与之相等时,它肯定不起作用。我想我已经将公式转换为字符串,但是不确定如何使其在公式中起作用。

excel vba syntax
3个回答
2
投票

正确的语法将如@TimWilliams所示。但是您说的是“具有更多的命名范围”,因此请注意,在Range(address)中使用的地址的长度不能超过255个字符。因此,如果您有很多范围,则可能会达到该限制,并且无法使用。

如果是这种情况,则必须使用Application.Union method

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

换行符始终为空格,后跟下划线_Enter

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

2
投票
Set xNamedRangeList = Range("NamedRange1," & _
                            "NamedRange2," & _
                            "NamedRange3")

0
投票

如果NamedRange1和NamedRange2是变量,请尝试:

Range(NamedRange1 + NamedRange2)
© www.soinside.com 2019 - 2024. All rights reserved.