Skip i'r prif gynnwys

Sut i dynnu enw ffeil yn gyflym o'r llwybr llawn yn Excel?

Gan dybio bod gennych chi daflen waith sy'n cynnwys rhestr o lwybrau ffeiliau, nawr yr hoffech chi dynnu enw'r ffeil yn unig (rhan iawn y backslash terfynol) o bob llwybr fel y sgrinluniau canlynol a ddangosir. A oes unrhyw driciau cyflym i ddelio â'r dasg hon?

Tynnwch enw ffeil o'r llwybr llawn gyda fformiwla yn Excel
Tynnwch enw ffeil o'r llwybr llawn gyda Swyddogaeth Diffiniedig Defnyddiwr
Tynnwch enw ffeil o'r llwybr llawn gyda chod VBA


Tynnwch enw ffeil o'r llwybr llawn gyda fformiwla yn Excel

Yn Excel, gallwch ddefnyddio'r fformiwla isod i dynnu enw ffeil yn unig o'r llwybr llawn yn gyflym.

Dewiswch gell wag, rhowch y fformiwla isod i mewn iddi ac yna pwyswch y Rhowch allweddol.

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

Awgrymiadau: A1 yw'r gell rydych chi am dynnu enw'r ffeil ohoni), a gwasgwch Enter botwm, yna llusgwch y handlen llenwi i lenwi'r ystod rydych chi ei eisiau. Ar ôl hynny, mae'r enw ffeil yn cael ei dynnu o bob cell.

doc dyfyniad enw1


Tynnwch enw ffeil o'r llwybr llawn gyda Swyddogaeth Diffiniedig Defnyddiwr

Gyda'r Swyddogaeth Diffiniedig Defnyddiwr ganlynol, gallwch gael enw'r ffeil yn hawdd ac yn gyflym.

1. Daliwch i lawr y ALT + F11 allweddi i agor y Ffenestr Microsoft Visual Basic for Applications.

2. Cliciwch Mewnosod > Modiwlau, a gludwch y cod canlynol yn y Ffenestr Modiwl.

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. Gwasgwch y Alt + Q allweddi i gau'r Microsoft Visual Basic ar gyfer Ceisiadau ffenestr ac ewch yn ôl i'r daflen waith. Mewn cell wag, B1 er enghraifft, rhowch y fformiwla isod i mewn iddi a gwasgwch y Rhowch allweddol.

=FunctionGetFileName(A1)

enwau doc-extract-file1

Yna dewiswch gell B1 eto, llusgwch yr handlen llenwi i'r ystod rydych chi am gymhwyso'r fformiwla hon, ac mae'r holl enwau ffeiliau wedi'u tynnu o'r llwybrau llawn fel canlyniad canlynol:

enwau doc-extract-file1


Tynnwch enw ffeil o'r llwybr llawn gyda chod VBA

Heblaw am y Swyddogaeth Diffiniedig Defnyddiwr, gall cod VBA hefyd eich helpu i echdynnu'r enwau ffeiliau. Gwnewch fel hyn:

1. Daliwch i lawr y ALT + F11 allweddi i agor y Ffenestr Microsoft Visual Basic for Applications.

2. Cliciwch Mewnosod > Modiwlau, a gludwch y cod canlynol yn y Ffenestr Modiwl.

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. Yna pwyswch F5 allwedd i redeg y cod hwn, a dewis yr ystod rydych chi am dynnu enw'r ffeil ohoni, gweler y screenshot:

enwau doc-extract-file1

4. Ac yna cliciwch OK, mae'r enwau ffeiliau wedi'u tynnu o'r detholiad fel a ganlyn:

Nodyn: Gyda'r cod VBA hwn, bydd y data gwreiddiol yn cael ei ddinistrio, felly dylech chi gopïo un cyn defnyddio'r cod hwn.

Offer Cynhyrchiant Swyddfa Gorau

Nodweddion Poblogaidd: Darganfod, Amlygu neu Adnabod Dyblygiadau   |  Dileu Rhesi Gwag   |  Cyfuno Colofnau neu Gelloedd heb Colli Data   |   Rownd heb Fformiwla ...
Super-edrych: VLookup Meini Prawf Lluosog    VLookup Gwerth Lluosog  |   VLookup Ar Draws Taflenni Lluosog   |   Edrych Niwlog ....
Rhestr gwympo Uwch: Creu Rhestr Gollwng yn Gyflym   |  Rhestr Gollwng Dibynnol   |  Rhestr Gollwng Aml-ddewis ....
Rheolwr Colofn: Ychwanegu Nifer Penodol o Golofnau  |  Symud Colofnau  |  Toglo Statws Gwelededd Colofnau Cudd  |  Cymharwch Ystodau a Cholofnau ...
Nodweddion dan Sylw: Ffocws ar y Grid   |  Golwg Dylunio   |   Bar Fformiwla Mawr    Rheolwr Llyfr Gwaith a Thaflen   |  Llyfrgell Adnoddau (Testun Auto)   |  Dewiswr Dyddiad   |  Cyfuno Taflenni Gwaith   |  Amgryptio/Dadgryptio Celloedd    Anfon E-byst trwy Restr   |  Hidlo Super   |   Hidlo Arbennig (hidlo mewn print trwm/italig/strikethrough...) ...
15 Set Offer Gorau12 Testun offer (Ychwanegu Testun, Dileu Cymeriadau,...)   |   50 + Siart Mathau (Siart Gantt,...)   |   40+ Ymarferol Fformiwlâu (Cyfrifwch oedran yn seiliedig ar ben-blwydd,...)   |   19 mewnosod offer (Mewnosod Cod QR, Mewnosod Llun o'r Llwybr,...)   |   12 Trosi offer (Rhifau i Eiriau, Trosi arian cyfred,...)   |   7 Uno a Hollti offer (Rhesi Cyfuno Uwch, Celloedd Hollt,...)   |   ... a mwy

Supercharge Eich Sgiliau Excel gyda Kutools ar gyfer Excel, a Phrofiad Effeithlonrwydd Fel Erioed Erioed. Kutools ar gyfer Excel Yn Cynnig Dros 300 o Nodweddion Uwch i Hybu Cynhyrchiant ac Arbed Amser.  Cliciwch Yma i Gael Y Nodwedd Sydd Ei Angen Y Mwyaf...

tab kte 201905


Mae Office Tab yn dod â rhyngwyneb Tabbed i Office, ac yn Gwneud Eich Gwaith yn Haws o lawer

  • Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
  • Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
  • Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
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!
This comment was minimized by the moderator on the site
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)
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations