我只需要返回工作表和单元格地址。 这段代码:
SthRange.Adddress(external:=True)
将返回工作簿名称,表格和单元格地址。我怎样才能只返回表格和单元格?
答案 0 :(得分:3)
由于Range.Address
函数始终返回格式为[Workbook]Worksheet!range
的字符串,因此您可以使用字符串函数通过修剪字符串前面的所有字符(包括第一个字符)来修剪工作簿如下图所示。
Dim strAddress As String
strAddress = SthRange.Address(External:=true)
strAddress = Right(strAddress, Len(strAddress)-InStr(strAddress, "]"))
如果您要定期执行此操作,可以像这样为您的VBA项目添加快速功能
Public Function SheetAndRange(ByVal FullAddress As String) As String
SheetAndRange = Right(FullAddress, Len(FullAddress) - InStr(FullAddress, "]"))
End Function
这将使您获得所需的结果如下:
strSomeString = SheetAndRange(SthRange.Address(External:=true))
答案 1 :(得分:0)
从MrExcel您可以使用范围的父级执行此操作。如果这很慢,那么你必须分解地址字符串(也在链接的例子中显示)
Dim FullAddressString as Strng
FullAddressString = "[Book1]Sheet1!$A$1"
MsgBox "is in Book " & Range(FullAddressString).Parent.Parent.Name
MsgBox "is in sheet " & Range(FullAddressString).Parent.Name
MsgBox "is in range" & Range(FullAddressString).Address