Vba 如何检索长度超过255个字符的range.address?
我很难检索长度超过255个字符的range.address。 我的范围由多个分段范围组成,其地址如下所示: A1:B3、C4、K7:T6、A3:D3 目前我正在处理一个地址超过1000个字符的范围。可悲的是,我无法获得range.address的完整地址。我只有255个第一个字符 感谢您的帮助:)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个字符的字符串方面的工作。但这是关于传递字符串,而不是返回字符串,所以…是的。我不知道地址会有什么用途,但您可以通过循环范围的区域来获得它:
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的及时回复:)