最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

excel中使用VBA提取指定文件夾中指定擴展名的所有文件名的技巧

  發(fā)布時間:2026-02-26 16:23:46   作者:佚名   我要評論
項目結束后,要把相關文件的存放位置整理成清單交給同事或領導,提取文件夾名稱和路徑后,能讓接收方精準找到對應文件,減少溝通成本,確保工作銜接順暢,下面我們就來看看使用VBA提文件名的技巧

不使用VBA,列出指定文件夾的所有文件名的方法中,我們使用Excel中隱藏的FILES函數定義名稱,并將之應用到Excel公式中提取指定文件夾中所有文件名。今天更進一步:按擴展名篩選,只提取我們想要的那一類文件(比如只提取 .xlsx 或 .jpg)。配合自定義函數(UDF),像使用內置函數一樣簡單!

可以使用VBA創(chuàng)建一個自定義函數(UDF),輕松獲取指定文件夾指定擴展名的所有文件的名稱。

代碼來了

'================================================
' 函數名稱:GetFileNamesbyExt
' 功能描述:獲取指定文件夾中特定擴展名的所有文件名
' 參  數:FolderPath - 文件夾路徑
' ? ? ? ? ? FileExt ? ?- 文件擴展名(如".xlsx")
' 返 回 值:包含文件名的數組
'================================================
Function GetFileNamesbyExt(ByVal FolderPath As String, FileExt As String) As Variant? ? 
Dim Result As Variant? ? 
Dim i As Integer? ? 
Dim MyFile As Object? ? 
Dim MyFSO As Object? ? 
Dim MyFolder As Object? ? 
Dim MyFiles As Object?? ? 
Set MyFSO = CreateObject("Scripting.FileSystemObject")? ? 
Set MyFolder = MyFSO.GetFolder(FolderPath)? ? 
Set MyFiles = MyFolder.Files?? ? 
ReDim Result(1 To MyFiles.Count)? ? 
i = 1?? ? 
For Each MyFile In MyFiles? ? ? ? 
If InStr(1, MyFile.Name, FileExt) <> 0 Then? ? ? ? ? ? 
Result(i) = MyFile.Name? ? ? ? ? ? 
i = i + 1? ? ? ? 
End If? ? 
Next MyFile?? ? 
ReDim Preserve Result(1 To i - 1)? ? 
GetFileNamesbyExt = ResultEnd Function

上述代碼將創(chuàng)建了一個名為GetFileNamesbyExt的函數,該函數可像Excel內置函數一樣在工作表中使用。

如何使用這個函數?

  • 插入模塊打開VBE編輯器(Alt + F11),插入一個標準模塊,粘貼上述代碼。
  • 使用公式提取

在工作表任意單元格中輸入希望列出文件名的文件夾地址,示例中為單元格A1;在工作表任意單元格中輸入指定的擴展名,示例中為單元格B1。然后,在想要列出文件名單元格中(示例為單元格A3),輸入公式:

=IFERROR(INDEX(GetFileNamesbyExt($A$1,$B$1),ROW()-2),"")

向下拖動公式復制到下方單元格直至列出所有文件名,如下圖1所示。

注意,在上面的公式中,使用了ROW()-2,因為公式單元格是從第三行開始的,這確保了當在下面的單元格中復制公式時,它將遞增1。如果在某列的第一行輸入公式,則可以簡單地使用row()。

特別提示

  • 如果省略第二個參數(擴展名),函數將返回文件夾中 所有文件名;
  • 擴展名區(qū)分大小寫?不用怕,InStr 默認不區(qū)分,放心用;
  • 路徑最后不要忘了加反斜杠?不用加,GetFolder 自動識別。

寫在最后

這個小工具非常適合:

  • 整理照片時提取所有 .jpg 文件;
  • 匯總報表時提取所有 .xlsx 文件;
  • 清理電腦時列出所有 .tmp 臨時文件。

相關文章

最新評論

大厂| 杭锦旗| 老河口市| 石楼县| 平度市| 政和县| 江城| 宜川县| 天台县| 桃园市| 临沂市| 辽中县| 津市市| 云南省| 松潘县| 高台县| 凌源市| 惠东县| 天津市| 池州市| 西平县| 莱阳市| 吉林市| 濮阳县| 林甸县| 思南县| 长兴县| 肥东县| 嘉黎县| 焉耆| 临江市| 定西市| 大丰市| 保德县| 临清市| 卢龙县| 炉霍县| 东乌| 同德县| 津南区| 安远县|