VBA如何通过外部地址返回表单名称和单元格地址?

时间:2014-12-09 10:39:53

标签: vba excel-vba excel

我只需要返回工作表和单元格地址。 这段代码:

SthRange.Adddress(external:=True)

将返回工作簿名称,表格和单元格地址。我怎样才能只返回表格和单元格?

2 个答案:

答案 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