2011-04-05 7 views
1

是否有任何方法可以使用VBA中的FileSystemObject來確定文件夾中特定類型(例如.PDF)的文件數量,而不使用循環在不使用循環的情況下確定文件夾中特定類型的文件

For Each file In folder.Files 
    'Check file type and count 
Next 
+1

即使有一個庫去做,它也無法忽視每一個文件。我不認爲有更快的方法來做到這一點。 – bdares 2011-04-05 06:54:39

+2

循環有什麼問題?如果這是你經常做的事情,請將其粘貼在用戶定義的功能中。 – 2011-04-05 07:05:51

+0

謝謝bdares和Jean-Francois提供有用的意見。所以一個循環似乎是要走的路。 – strcompnice 2011-04-06 08:27:33

回答

2

您可以在不依賴FSO的情況下執行此操作,同時也無需手動檢查文件擴展名;

dim file as String, countOf As Long 
file = Dir$("c:\xxxxxx\*.pdf") 
Do until file = "" 
    countOf = (countOf + 1) 
    file = Dir$() 
Loop 

MsgBox countOf 
+0

這是一個有趣的方法亞歷克斯。但是您仍然在使用循環來計算文件,儘管您避免了與條件不匹配的文件。 – strcompnice 2011-04-06 08:31:54

+0

這似乎是最好的方法,因爲它比使用FileSystemObject還快。 – strcompnice 2011-04-12 12:11:01

0

對於Excel,您需要使用循環。循環真的不會需要那麼長時間,但是,如果由於某種原因你的厭惡循環,你必須有一個班輪,然後批量是要走的路。

我沒有測試它,但在目錄中創建一個文本文件,稱之爲whatever.bat,右鍵單擊該文件並選擇編輯(或使用記事本++編輯)。然後插入以下代碼:

set /a counter = 0 
for /f %%f in (*.pdf) do set /a count += 1 

echo counter: %counter% 
pause 

保存該文件,然後雙擊打開並運行該程序。

相關問題