2013-06-10 20:29:02 +0000 2013-06-10 20:29:02 +0000
14
14

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

Próbuję wyświetlić nazwę pliku, nad którym pracuję w interesującym mnie arkuszu kalkulacyjnym Excel za pomocą formuły. Na przykład, jeśli plik nazywa się workbook1.xlsx, to chciałbym, aby komórka A1 pokazywała “workbook1.xlsx”

Formuła, którą podaje strona pomocy Microsoftu, nie działa http://office.microsoft. com/en-us/excel-help/insert-the-current-excel-file-file-name-path-or-worksheet-in-a-cell-HA010103010. aspx#BMinsert3

=MID(CELL(“filename”),SEARCH(“[”,CELL(“filename”))+1, SEARCH(“]”,CELL(“filename”))-SEARCH(“[”,CELL(“filename”))-1)

Odpowiedzi (6)

14
14
14
2013-06-10 20:42:32 +0000

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

Wypróbuj najpierw sam =CELL("filename"), aby pomóc w rozwiązywaniu problemów.

  • Upewnij się, że zapisałeś swój skoroszyt na dysku. Nie pokaże się “Book1”, jeśli umieścisz formułę w nowym niezapisanym skoroszycie.

  • Czy używasz nieangielskich ustawień regionalnych na swoim komputerze? Niektóre języki wymagają dostosowania nazw funkcji i składni formuł (np. w języku francuskim przecinki muszą być zastąpione średnikami).

  • Czy korzystasz z komputera osobistego, czy z komputera w pracy? Jeśli jest to komputer służbowy, być może przyczyną problemów są ograniczenia praw użytkownika.

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

9
9
9
2013-06-10 23:35:14 +0000

Zauważ, że =CELL("filename") podaje ścieżkę do ostatniego zmienionego skoroszytu/arkusza, więc jeśli masz otwarte dwa skoroszyty, abc i xyz, a twoja formuła znajduje się w abc, jeśli ostatnio zmieniłeś wartość w xyz, formuła w abc odzwierciedli to i zwróci xyz.xlsx

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

=CELL(“filename”, A1 )

Użycie tej wersji oznacza, że zawsze otrzymasz tylko 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
2
2
2017-06-29 16:48:47 +0000

Znalazłem to jako “najprostszą” formułę, aby zwrócić tylko filename:

=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ę, to zrobi:

=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
1
1
2015-08-28 14:34:41 +0000

Jeśli używasz Excela w języku holenderskim, powinieneś używać holenderskich nazw funkcji i używać średników zamiast przecinków:

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

1
1
1
2015-01-09 16:11:13 +0000

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

=MID(CELL(“filename”);SEARCH(“[”;CELL(“filename”))+1; SEARCH(“]”;CELL(“filename”))-SEARCH(“[”;CELL(“filename”))-1)

1
1
1
2015-01-15 10:41:26 +0000

Prostszym rozwiązaniem jest to:

W swoim pliku Excela naciśnij Alt+F11, co spowoduje otwarcie programu Microsoft Visual Basics for Applications (VBA). W VBA zaznacz Insert > Module i wklej następujący kod

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

W pliku Excela wpisz formułę: =GetMyProp("Title"). Spowoduje to wyświetlenie tytułu dokumentu w wybranej komórce.