Ссылка на имя рабочего листа

Джон интересуется, есть ли функция, эквивалентная = СТРОКА () или = КОЛОНКА () для листов. Ему нужно сослаться (например) на четвертый лист в книге, но он не может быть уверен в названии рабочего листа.

Есть несколько способов решения этой проблемы, в зависимости от того, что вам нужно сделать. Если вы работаете с уже сохраненным листом, следующая формула предоставит вам имя листа для Sheet4:

= MID (CELL («filename», Sheet4! A1), НАЙТИ («]», CELL («filename», Sheet4! A1)) + 1, LEN (CELL («filename», Sheet4! A1)))

Обратите внимание, что есть пара предположений в этой формуле. Во-первых (и что наиболее важно) предполагается, что вы знаете начальное имя рабочего листа. В этом случае первоначальное имя – Sheet4. После того, как формула будет на месте, последующие изменения имени рабочего листа будут автоматически отражены в формуле. Второе предположение заключается в том, что рабочая книга, с которой вы работаете, была сохранена. В противном случае формула возвращает ошибку, пока книга не будет сохранена и пересчитана.

Другой подход – использовать пользовательскую функцию. В объектной модели VBA все листы в книге содержатся в коллекции Sheets. Они, в свою очередь, индексируются. Таким образом, вы можете передать значение индекса в функцию и вернуть имя рабочего листа по порядковому номеру коллекции.

Function TabName (lSNum As Long) As String If lSNum> 0 And lSNum

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

= TabName (4)

Функция будет работать нормально даже в книге, которая не была сохранена. Он также возвращает правильное имя рабочего листа, даже если рабочие листы переименованы или перемещены.

Источник: frestage.ru

Бытовой вопрос