Note: The other languages of the website are Google-translated. Back to English
Zaloguj Się  \/ 
x
or
x
Rejestruję się  \/ 
x

or

Jak szybko wyodrębnić nazwę pliku z pełnej ścieżki w programie Excel?

Przypuśćmy, że masz arkusz roboczy zawierający listę ścieżek plików, teraz chciałbyś wyodrębnić tylko nazwę pliku (prawa część końcowego ukośnika odwrotnego) z każdej ścieżki, jak pokazano na poniższych zrzutach ekranu. Czy są jakieś szybkie sztuczki, aby poradzić sobie z tym zadaniem?

Wyodrębnij nazwę pliku z pełnej ścieżki za pomocą formuły w programie Excel
Wyodrębnij nazwę pliku z pełnej ścieżki za pomocą funkcji zdefiniowanej przez użytkownika
Wyodrębnij nazwę pliku z pełnej ścieżki za pomocą kodu VBA


Wyodrębnij nazwę pliku z pełnej ścieżki za pomocą formuły w programie Excel

W programie Excel możesz użyć poniższej formuły, aby szybko wyodrębnić tylko nazwę pliku z pełnej ścieżki.

Wybierz pustą komórkę, wprowadź do niej poniższą formułę, a następnie naciśnij wchodzić klawisz.

=MID(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,LEN(A1))

Wskazówki: A1 to komórka, z której chcesz wyodrębnić nazwę pliku) i naciśnij przycisk Enter, a następnie przeciągnij uchwyt wypełniania, aby wypełnić żądany zakres. Następnie nazwa pliku jest wyodrębniana z każdej komórki.

nazwa pliku doc ​​nazwa1


Wyodrębnij nazwę pliku z pełnej ścieżki za pomocą funkcji zdefiniowanej przez użytkownika

Dzięki poniższej funkcji zdefiniowanej przez użytkownika możesz łatwo i szybko uzyskać nazwę pliku.

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.

2, Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Function FunctionGetFileName(FullPath As String) As String
'Update 20140210
Dim splitList As Variant
splitList = VBA.Split(FullPath, "\")
FunctionGetFileName = splitList(UBound(splitList, 1))
End Function

3. Naciśnij inny + Q klucze do zamknięcia Microsoft Visual Basic for Applications i wróć do arkusza. W pustej komórce, na przykład B1, wprowadź do niej poniższą formułę i naciśnij wchodzić klawisz.

=FunctionGetFileName(A1)

nazwy-plików-wyciągów-dokumentów1

Następnie ponownie wybierz komórkę B1, przeciągnij uchwyt wypełniania do zakresu, w którym chcesz zastosować tę formułę, a wszystkie nazwy plików zostały wyodrębnione z pełnych ścieżek w następujący sposób:

nazwy-plików-wyciągów-dokumentów1


Wyodrębnij nazwę pliku z pełnej ścieżki za pomocą kodu VBA

Oprócz funkcji zdefiniowanej przez użytkownika kod VBA może również pomóc w wyodrębnieniu nazw plików. Zrób tak:

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.

2, Kliknij wstawka > Modułi wklej następujący kod w oknie modułu.

Sub GetFileName()
'Update 20140210
Dim Rng As Range
Dim WorkRng As Range
Dim splitList As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    splitList = VBA.Split(Rng.Value, "\")
    Rng.Value = splitList(UBound(splitList, 1))
Next
End Sub

3. Następnie naciśnij F5 klucz do uruchomienia tego kodu i wybierz zakres, z którego chcesz wyodrębnić nazwę pliku, zobacz zrzut ekranu:

nazwy-plików-wyciągów-dokumentów1

4. A następnie kliknij OK, nazwy plików zostały wyodrębnione z zaznaczenia w następujący sposób:

Uwagi: Za pomocą tego kodu VBA oryginalne dane zostaną zniszczone, dlatego przed zastosowaniem tego kodu należy je skopiować.


Najlepsze narzędzia biurowe

Kutools for Excel rozwiązuje większość twoich problemów i zwiększa wydajność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2019 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowy bezpłatny okres próbny. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i zmniejsza setki kliknięć myszą każdego dnia!
officetab dół
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Rese · 1 years ago
    Very useful function. Is there a way to modify the script so it finds the filename if the path has either \ or / slashes?

    I have a spreadsheet with various hyperlinks where the underlying paths are either \ or / (back slash or forward slash) separates - I think its because some of the links to files were done just as bookmarks in Word originally, or to files on an internal doc server. Or maybe its because some path links are made with absolute vs relative path links?

    eg:

    ../../../../Documents/2ndQuarter/2019/standardcost_widget12345.pdf
    or
    \fileserver\factory23\Operations\Parts_Mgt\Documents\2ndQuarter\2019\standardcost_widget12345.pdf


    When I ran the getfilename function, it got all the filenames that were in paths with \ between directories or folders, but the links with / slashes were returned as is.
    I altered & added a second function that was similar but replaced the "\" in line 4 with "/" and called it forwardslashgetfilename and run it in a separate column after I run the first function.

    Running one function after another is not difficult, but I was curious if you can expand the code in splitList operation in line 4 to include both "\" or "/". I'm no VBA programmer but I tried splitList = VBA.Split(FullPath, "\" or "/") and it didn't work.

    Thoughts? I'm assuming its some simple syntax - I'm just clueless at this point... but I will start poking around the interwebs...

    Tks!
  • To post as a guest, your comment is unpublished.
    bob · 4 years ago
    The formula raises a #VALUE! error if the source cell has only a filename to begin with.. Embedding the entire formula in an IFERROR function solves this problem, e.g., =IFERROR(<orig formula>,A1)