Как получить адрес диапазона, включая имя листа, но не имя книги, в Excel VBA? - PullRequest
36 голосов
/ 25 сентября 2008

Если у меня есть объект Range - например, допустим, он ссылается на ячейку A1 на листе с именем Book1. Так что я знаю, что вызов Address() даст мне простую локальную ссылку: $A$1. Я знаю, что его также можно назвать Address(External:=True), чтобы получить ссылку, включающую имя рабочей книги и имя рабочей таблицы: [Book1]Sheet1!$A$1.

Я хочу получить адрес, включающий название листа, но не название книги. Я действительно не хочу звонить по номеру Address(External:=True) и пытаться самостоятельно удалить название книги с помощью строковых функций. Могу ли я сделать звонок в диапазоне, чтобы получить Sheet1!$A$1?

Ответы [ 11 ]

0 голосов
/ 27 марта 2009

[редактировать 2009-04-21]

Как указал Мика, это работает только тогда, когда вы назвали это
конкретный диапазон (следовательно. Кто-нибудь?) Да, ой!

[/ править]

Немного опоздал на вечеринку, я знаю, но в случае, если кто-то еще поймает это в поиске Google (как я только что сделал), вы также можете попробовать следующее:

Dim cell as Range
Dim address as String
Set cell = Sheet1.Range("A1")
address = cell.Name

Это должно вернуть полный адрес, что-то вроде "= Sheet1! $ A $ 1".

Предполагая, что вам не нужен знак равенства, вы можете удалить его с помощью функции замены:

address = Replace(address, "=", "")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...