Jak wstawić bieżącą nazwę pliku w programie Excel?


14

Próbuję wyświetlić nazwę pliku, nad którym pracuję, w arkuszu kalkulacyjnym Excel za pomocą formuły. Na przykład, jeśli plik miał nazwę workbook1.xlsx, wówczas chciałbym, aby komórka A1 wyświetlała „workbook1.xlsx”

Formuła podana przez witrynę pomocy Microsoft nie działa: http://office.microsoft.com/en-us/excel-help/insert-the-current-excel-file-name-path-or-worksheet-in- a-cell-HA010103010.aspx # BMinsert3

= MID (CELL („nazwa pliku”), SEARCH („[”, CELL („nazwa pliku”)) + 1, SEARCH („]”, CELL („nazwa pliku”)) - SEARCH („[”, CELL („nazwa pliku „)) - 1)


W jaki sposób to nie działa? Jakie wyniki daje? Czy zapisałeś skoroszyt?

Odpowiedzi:


14

Działa tutaj, właśnie przetestowałem na Excel 2007 (XP) i Excel 2013 (Windows 8).

=CELL("filename")Najpierw spróbuj sam, aby rozwiązać problem.

  • Upewnij się, że zapisałeś skoroszyt na dysku. Nie pojawi się „Book1”, jeśli umieścisz formułę w nowym niezapisanym skoroszycie.

  • Czy używasz na swoim komputerze ustawień regionalnych innych niż angielski? Niektóre języki wymagające dostosowania nazw funkcji i składni formuł (na przykład w języku francuskim przecinki należy zastąpić średnikami).

  • Czy korzystasz z komputera osobistego lub stanowiska pracy? Jeśli jest to komputer służbowy, być może istnieją ograniczenia praw użytkownika powodujące problemy.

Kiedy mówisz „to nie działa”, czy możesz być bardziej szczegółowy? Czy akceptuje formułę zgodnie z typem? Czy komórka jest pusta, pokazuje „#VALUE!” Itp.? Co się dzieje, gdy tylko używasz =CELL("filename")?


Myślę, że miałem miejsce lub coś takiego, teraz działa. Dzięki!
timothy.s.lau

Nie wydaje się działać w wersji beta programu Excel 2015.
Akku

Upewnij się, że znaczniki komórki, w której się znajdujesz, są ogólne / standardowe (więc nie tekst / liczba itp.)
Lexib0y

1
Nie działało to dla mnie, dopóki nie zmieniłem znaku przecinka na średnik, zgodnie z moim miejscem.
mavrosxristoforos

9

Zauważ, że =CELL("filename")podaje ścieżkę do ostatniej zmienionej skoroszytu / arkusza roboczego, więc jeśli masz 2 skoroszyty otwarte, abc i xyz, a formuła jest w abc, jeśli ostatnio zmieniłeś wartość w xyz, formuła w abc to odzwierciedli i zwrócixyz.xlsx

Z tego powodu zwykle lepiej jest dołączyć odwołanie do komórki (dowolne odwołanie do komórki), np

= KOMÓRKA („nazwa pliku”, A1 )

Korzystanie z tej wersji oznacza, że ​​zawsze otrzymasz nazwę skoroszytu, w którym znajduje się formuła.

Możesz użyć tej nieco krótszej wersji

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")


2

Odkryłem, że jest to „najprostsza” formuła zwracająca tylko nazwę pliku :

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

or - created in VBA:

Formula = "=REPLACE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),1,FIND(""["",CELL(""filename"",A1)),"""")"

Aby zwrócić pełną ścieżkę , spowoduje to:

=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")

or - created in VBA:

Formula = "=SUBSTITUTE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),""["","""")"

1

Miałem ten sam problem (wklejona formuła nie działała)! Po zastąpieniu ,przez ;w formule zadziałało idealnie.

= MID (CELL („nazwa pliku”); SEARCH („[”; CELL („nazwa pliku”)) + 1; SEARCH („]”; CELL („nazwa pliku”)) - SEARCH („[”; CELL („nazwa pliku „)) - 1)


Uważam, że dzieje się tak, ponieważ używasz Excela w wersji Euro. Wersja Euro używa średników zamiast przecinków dla parametrów funkcji. Uważam, że wersja międzynarodowa również używa przecinków.
krowe2

Tak naprawdę nie jest to kwestia tego, którą wersję programu Excel używasz, ale raczej tego, jakiego „separatora” używasz w ustawieniach regionalnych.
deroby

1

Bardziej proste rozwiązanie to:

W pliku Excel naciśnij Alt+ F11, który otwiera Microsoft Visual Basics for Applications (VBA). W VBA wybierz Insert > Modulei wklej następujący kod

Public Function GetMyProp(prop As String) As String
    GetMyProp = ThisWorkbook.BuiltinDocumentProperties(prop)
End Function

W swojej typu pliku Excel formuły: =GetMyProp("Title"). Spowoduje to wyświetlenie tytułu dokumentu w wybranej komórce.


1

Jeśli używasz programu Excel w języku niderlandzkim, powinieneś użyć holenderskich nazw funkcji i średników zamiast przecinków:

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-1);1;VIND.SPEC("[";CEL("filename"));"")

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.