Как я могу отобразить имя текущего листа в ячейке?

13

Я хочу, чтобы иметь возможность отображать имя текущего листа в ячейке на этом листе.

Как я могу сделать это, не прибегая к сценариям VBA?

Если это имеет значение, то особенным вариантом Excel, с которым я работаю, является 2007 год, но я бы предпочел что-то настолько независимое от версии, насколько это возможно.

пиво
источник

Ответы:

19
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1),1))

Книга должна быть сохранена, прежде чем эта функция заработает.

Ключом к функции является то =CELL("filename",A1), что возвращает удобную строку, которая включает путь к файлу, имя файла и имя листа:C:\Users\john.smith\Desktop\[Test.xlsx]Sheet1

Видеть:

датчанин
источник
Ссылка на ячейку A1необязательна, нет?
эль
2
Это работает для меня:=RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename")))
Эля
2
Вы можете опустить ссылку на ячейку, и это не имеет значения, если у вас есть только одна функция Cell () в файле. Однако если вы используете функцию ячейки для отображения имени листа на каждом листе, вам нужна ссылка A1, в противном случае на каждом листе будет отображаться одно и то же значение. Какое значение отображается, зависит от того, какая формула была в последний раз пересчитана. Итак, поместите формулу в Sheet1, Sheet2, Sheet3, без ссылки на A1. Когда вы пересчитаете Sheet3, он покажет «Sheet3». Перейдите на Sheet1, и он также покажет "Sheet3". - Наверное, не то, что вы хотите. Но с ссылкой на ячейку формула будет работать, как и ожидалось.
Тейлин
6
Немного короче .....=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,32)
Барри Гудини