vba獲取文件夾下所有文件名


原文鏈接

學習自楊洋老師《全民一起VBA》

1. 在VBA中,dir函數可以返回一個文件夾下一個文件的名字(包含后綴)。

示例代碼:

filename = Dir("F:userdataDesktop新建文件夾")

dir后面的參數應該以反斜杠“”結尾,這樣才能返回該文件夾下的文件名稱。否則“新建文件夾”會被當成一個文件名進行處理。

Dir運行一次只能得到一個文件名。為得到下一個文件名,代碼應該這樣寫:filename = Dir。

Dir后面不寫任何參數,如果寫了與前面相同的參數"F:userdataDesktop新建文件夾",則會重新掃描該文件夾,又得到第一個文件名,如果更改為其他文件夾,就掃描該文件夾,得到它的第一個文件名

如果文件夾中有n個文件,或者說有n個符合條件的文件,那么當Dir運行第n+1次時,則返回一個空字符串,代表已經查找完所有的文件。Dir運行第n+2次時,程序將報錯。

2. 掃描一個文件夾下所有文件的通用模板

  1.  
    Dim filename as string
  2.  
    filename = Dir( "F:userdataDesktop新建文件夾") '可以更改為任意文件夾
  3.  
    Do while filename <> ""
  4.  
    相關操作
  5.  
    filename = Dir '獲取下一個文件名
  6.  
    Loop

3. Dir掃描符合條件的文件名(通配符*)

示例代碼:

F = Dir("F:userdataDesktop新建文件夾*.xls"),掃描所有后綴為.xls的文件。

4. 判斷一個文件是否存在

示例代碼:

F = Dir("F:userdataDesktop新建文件夾123.xls")

如果文件123.xls存在,則返回字符串123.xls,如果不存在,則返回空字符串。

5. 掃描文件和子文件夾名稱

一般情況下,Dir函數只返回文件名,而不返回子文件夾名。如果想要兩者都返回,則需要加上vbDirectory參數。示例代碼如下:

F = Dir("F:userdataDesktop新建文件夾" , vbDirectory)

特別要注意的是,子文件夾包括“.”和“..”兩個特殊名字,分別代表本目錄F:userdataDesktop新建文件夾及其父目錄F:userdataDesktop。

Dir函數只能返回第一層的子文件夾和文件名,子文件夾下的文件與文件夾不返回。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM