当前位置:  开发笔记 > 编程语言 > 正文

如何在Excel VBA中获取范围的地址,包括工作表名称,而不是工作簿名称?

如何解决《如何在ExcelVBA中获取范围的地址,包括工作表名称,而不是工作簿名称?》经验,为你挑选了2个好方法。

如果我有一个Range对象 - 例如,假设它引用了A1一个名为的工作表上的单元格Book1.所以我知道打电话Address() 会给我一个简单的本地参考:$A$1.我知道它也可以被称为Address(External:=True)获取包括工作簿名称和工作表名称的引用:[Book1]Sheet1!$A$1.

我想要的是获得一个地址,包括工作表名称,但不是书名.我真的不想调用Address(External:=True)并试图用字符串函数自己去除工作簿名称.我可以在范围内打电话Sheet1!$A$1吗?



1> Ben Hoffstei..:

我能想到的唯一方法是将工作表名称与单元格引用连接起来,如下所示:

Dim cell As Range
Dim cellAddress As String
Set cell = ThisWorkbook.Worksheets(1).Cells(1, 1)
cellAddress = cell.Parent.Name & "!" & cell.Address(External:=False)

编辑:

将最后一行修改为:

cellAddress = "'" & cell.Parent.Name & "'!" & cell.Address(External:=False) 

如果你希望它工作,即使工作表名称中有空格或其他有趣的字符.



2> 小智..:
Split(cell.address(External:=True), "]")(1)


是的,我在概念上喜欢这个,但是当工作表名称有空格并因此需要单引号(即'我的工作表')时,它不会起作用
推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有