Note: The other languages of the website are Google-translated. Back to English

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 Wchodzę 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 Wchodzę 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 dla programu Excel rozwiązuje większość problemów i zwiększa produktywność 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-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 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 redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (2)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Formuła podnosi #ARG! błąd, jeśli komórka źródłowa ma tylko nazwę pliku, od której zaczyna się.. Osadzenie całej formuły w funkcji JEŻELI.BŁĄD rozwiązuje ten problem, np. =JEŻELIBŁĄD( ,A1)
Ten komentarz został zminimalizowany przez moderatora na stronie
Bardzo przydatna funkcja. Czy istnieje sposób na zmodyfikowanie skryptu tak, aby znajdował nazwę pliku, jeśli ścieżka zawiera ukośniki \ lub /?

Mam arkusz kalkulacyjny z różnymi hiperłączami, w których ścieżki bazowe to \ lub / (ukośnik lewy lub ukośnik prawy) oddziela się - myślę, że to dlatego, że niektóre linki do plików zostały pierwotnie utworzone jako zakładki w programie Word lub do plików na wewnętrznym serwer dokumentów. A może dlatego, że niektóre linki ścieżki są tworzone z linkami bezwzględnymi i względnymi?

na przykład:

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


Kiedy uruchomiłem funkcję getfilename, pobrała wszystkie nazwy plików, które były w ścieżkach z \ między katalogami lub folderami, ale linki z / ukośnikami zostały zwrócone bez zmian.
Zmieniłem i dodałem drugą funkcję, która była podobna, ale zastąpiłem "\" w wierszu 4 "/" ​​i nazwałem ją forwardslashgetfilename i uruchomiłem w oddzielnej kolumnie po uruchomieniu pierwszej funkcji.

Uruchamianie jednej funkcji po drugiej nie jest trudne, ale ciekawiło mnie, czy można rozszerzyć kod w operacji splitList w wierszu 4 tak, aby zawierał zarówno "\", jak i "/". Nie jestem programistą VBA, ale próbowałem splitList = VBA.Split(FullPath, "\" lub "/") i to nie zadziałało.

Myśli? Zakładam, że jest to prosta składnia - w tym momencie po prostu nie mam pojęcia... ale zacznę grzebać w interwebach...

TKS!
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL