Jak mogę wyświetlić nazwę bieżącego arkusza w komórce?

13

Chcę mieć możliwość wyświetlenia nazwy bieżącego arkusza roboczego w komórce tego arkusza.

Jak mogę to zrobić bez uciekania się do skryptów VBA?

Jeśli to ma znaczenie, szczególny smak Excela, z którym pracuję, to 2007, ale wolałbym coś tak niezależnego od wersji, jak to możliwe.

ale
źródło

Odpowiedzi:

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

Skoroszyt należy zapisać, zanim zadziała ta funkcja.

Kluczem do tej funkcji jest =CELL("filename",A1)zwrócenie przydatnego ciągu zawierającego ścieżkę pliku, nazwę pliku i nazwę arkusza roboczego:C:\Users\john.smith\Desktop\[Test.xlsx]Sheet1

Widzieć:

Duńczyk
źródło
Odwołanie do komórki A1jest opcjonalne, nie?
ale
2
To działa dla mnie:=RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename")))
ale
2
Możesz pominąć odwołanie do komórki i nie ma znaczenia, czy w pliku jest tylko jedna funkcja Cell (). Jeśli jednak użyjesz funkcji komórki, aby wyświetlić nazwę arkusza na każdym arkuszu, potrzebujesz odwołania A1, w przeciwnym razie każdy arkusz będzie miał tę samą wartość. To, która wartość jest wyświetlana, zależy od tego, która formuła została ostatnio ponownie obliczona. Tak więc wstaw formułę do Arkusza1, Arkusza2, Arkusza3, bez odniesienia do A1. Po ponownym obliczeniu Arkusz3 wyświetli się „Arkusz3”. Przejdź do arkusza 1, a wyświetli się również „arkusz 3”. - Prawdopodobnie nie to, czego chcesz. Ale w przypadku odwołania do komórki formuła będzie działać zgodnie z oczekiwaniami.
teylyn
6
Nieco krótszy .....=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,32)
Barry Houdini