我将范围变量设置为等于范围列表。该列表太长了,我想使用换行符来简化管理。但是,我很难获取语法。我尝试了很多组合。
一行中的代码有效,看起来像这样(具有更多的命名范围):
Dim xNamedRangeList As Range
Set xNamedRangeList = Range("NamedRange1, NamedRange2")
到目前为止,我最大的尝试就是这个。
Set xNamedRangeList = " Range(""" & _
"NamedRange1," & _
"NamedRange2" &_
""")"
Debug.print看起来像这样:Ranged(“ NamedRange1,NamedRange2”)
虽然这在debug.print中有效,但是当我将xNamedRangeList设置为与之相等时,它肯定不起作用。我想我已经将公式转换为字符串,但是不确定如何使其在公式中起作用。
正确的语法将如@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"))
Set xNamedRangeList = Range("NamedRange1," & _
"NamedRange2," & _
"NamedRange3")
如果NamedRange1和NamedRange2是变量,请尝试:
Range(NamedRange1 + NamedRange2)