上回書說到,如何用EXCEL建立自己的工作檯(導航與日誌),有朋友說,自己的文件太多了,做起導航很費勁。別急,其實我們可以快速提取文件名,以便於我們批量建立超連結。
點擊延伸閱讀:
高效秘技!用EXCEL製作導航頁和日誌表管理日常工作
1. 無門檻通用bat法——用批處理腳本提取文件名
>>>>提取當前文件夾下的文件、文件夾名稱(不含子文件夾)
新建一個文本文檔,命名為「提取文件名」。
打開文本文檔,輸入公式:dir *.*/b>文件清單.txt
dir為列表命令,/b為只保留文件名和擴展名參數,>為將命令結果導入到指定文件內
將文本文檔的文件類型改為bat,即將「提取文件名.txt」更改為「提取文件名.bat」。如果你的電腦沒有顯示文件擴展名,另存為.bat文件即可。
註:bat文件就是批處理文件,DOS年代的命令,不挑系統。
雙擊bat文件運行,即可得到文件清單:
>>>>提取當前文件夾下的文件、文件夾名稱(包括子文件夾),輸出文件樹
上述方法有時候並不能滿足我們,比如,有的同事就喜歡將文件分門別類都放到文件夾下。然後,我去查一個文件,就需要一個個文件夾去找,點了十幾下,最後發現還是個空文件夾,真是讓人心累。
有沒有辦法能夠將文件夾下所有文件的名稱都提取出來?
有!而且可以提取成文件樹!
步驟同上,公式替換成:tree /F > 文件樹1.txt
運行結果如下:
點開一看
>>>>僅提取當前文件夾名稱(包含子文件夾)
步驟同上,公式替換成:tree > 文件樹2.txt
運行結果如下(不提取文件的名稱):
方法小結:
上述三種方法輸出文件都可以改變類型,擴展名「.txt」替換成對應的文件擴展名就可以了,比如替換成「.xls」就生成EXCEL文件。
2. WIN10黨福利——複製路徑
新系統帶來新功能,WIN10系統可以直接選中文件,複製路徑。
粘貼到EXCEL表格中:
EXCEL 2016及以上版本可以用快速填充命令,得到文件名。
EXCEL版本低也沒關係,可以用替換,將「文件名之前的路徑」替換為「空」。
3. 高階VBA大法——用EXCEL提取文件名
上面兩種方法簡單快捷,但有一個缺點,每次文件有變化,還需要重新運行一次批處理命令,再粘貼到EXCEL中。
能不能將更簡單一點?
可以,用EXCEL的VBA功能即可.
VBA是微軟的一種宏語言,EXCEL學會使用VBA就相當於打開了一片新天地。
具體方法:
1)插入一個長方形,輸入名稱,然後制定宏。(此步驟是為了方便運行,非必須)
2)新建宏。
3)將下面的代碼複製代碼框中:
Sub 提取文件名()On Error GoTo 100 Dim wsh As Object, mypath As String, ar, i&, br mypath = CreateObject("shell.application").BrowseForFolder(0, "請選擇要搜索的文件夾", 0).Items.Item.Path '在此指定目錄 Set wsh = CreateObject("wscript.shell") mypath = wsh.exec("cmd /c tree /f " & Chr(34) & mypath & Chr(34)).StdOut.ReadAll mypath = Left(mypath, Len(mypath) - 1) ar = Split(mypath, vbCrLf) ReDim br(1 To UBound(ar) + 1, 1 To 1) For i = 0 To UBound(ar) br(i + 1, 1) = ar(i) Next Range("a1").Resize(UBound(br)) = br Set wsh = Nothing100:End Sub
以上代碼來自EXhome論壇@yangyangzhifeng(學習VBA編程還是頗耗時間的,網上很多代碼可以借鑑)
4)點擊長方形按鈕運行,選擇制定提取文件樹的文件夾。
得到文件樹:
也有代碼可以實現只提取文件名(類似dir批處理命令的效果),下期告訴你。
總結
文件名提取成功了,那如何快速建立超連結呢?且聽下回分解!
關注點墨樓,每日分享Office技巧、職場實戰經驗,助你升職加薪。