2015-02-12 178 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

相關問題