Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 如何检索长度超过255个字符的range.address?_Vba_Excel - Fatal编程技术网

Vba 如何检索长度超过255个字符的range.address?

Vba 如何检索长度超过255个字符的range.address?,vba,excel,Vba,Excel,我很难检索长度超过255个字符的range.address。 我的范围由多个分段范围组成,其地址如下所示: A1:B3、C4、K7:T6、A3:D3 目前我正在处理一个地址超过1000个字符的范围。可悲的是,我无法获得range.address的完整地址。我只有255个第一个字符 感谢您的帮助:) 顺便说一句,我已经阅读了微软在传递长度超过255个字符的字符串方面的工作。但这是关于传递字符串,而不是返回字符串,所以…是的。我不知道地址会有什么用途,但您可以通过循环范围的区域来获得它: Sub b

我很难检索长度超过255个字符的range.address。 我的范围由多个分段范围组成,其地址如下所示: A1:B3、C4、K7:T6、A3:D3

目前我正在处理一个地址超过1000个字符的范围。可悲的是,我无法获得range.address的完整地址。我只有255个第一个字符

感谢您的帮助:)


顺便说一句,我已经阅读了微软在传递长度超过255个字符的字符串方面的工作。但这是关于传递字符串,而不是返回字符串,所以…是的。

我不知道地址会有什么用途,但您可以通过循环范围的区域来获得它:

Sub bar()
    Dim n                     As Long
    Dim rg                    As Range
    Dim rgArea                As Range
    Dim sAddress              As String

    For n = 1 To 500
        If n = 1 Then
            Set rg = Cells(n, 1)
        Else
            Set rg = Union(rg, Cells(n * 2, 1))
        End If
    Next n

    For Each rgArea In rg.Areas
        sAddress = sAddress & "," & rgArea.Address
    Next rgArea

    MsgBox Len(sAddress)
End Sub

我没有意识到范围地址长度有限制。与@Rory solution类似,我循环遍历范围区域,但我的解决方案使用返回长地址字符串的函数

Function LongSelectionAddress(rngToGetAddress As Range) As String
    Dim LongAddress As String, rngArea As Range

    For Each rngArea In rngToGetAddress.Areas
        LongAddress = LongAddress & rngArea.Address & ","
    Next rngArea

    LongSelectionAddress = Left(LongAddress, Len(LongAddress) - 1)
End Function

感谢Rory的及时回复:)