2015-02-12 175 views
1

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

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

任何帮助表示赞赏:)

顺便说一句,我已经阅读微软对在http://support.microsoft.com/kb/105416传递字符串长于255个字符变通。但这是关于传递字符串,而不是关于返回字符串,所以...是的。

回答

2

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

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 
+0

正是我在找什么,谢谢你KazJaw。 – phong 2015-02-13 06:26:05

0

我不知道是什么用的地址会是这样,但你可以通过范围的区域循环得到它:

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 
+0

谢谢罗里您的及时答案:) – phong 2015-02-13 06:24:25

相关问题