在vba中,我想搜索特定目錄名稱的目錄。理想情況下,搜索時間會很快(類似於Windows搜索)。Excel VBA:搜索目錄
來自不同的來源,我可以建立一個腳本(給出波紋管)與遞歸子程序。該腳本可以工作,但只要層次結構有點複雜,腳本就會很慢。
有沒有辦法讓搜索更快?
Sub GetFolder(Folder As String, searchF As String, colFolder As Collection)
Dim SubFolder, subF As New Collection, sf As String
If Right(Folder, 1) <> "\" Then Folder = Folder & "\"
If Dir(Folder & searchF, vbDirectory) <> "" Then colFolder.Add Folder & searchF & "\"
sf = Dir(Folder, vbDirectory)
Do While Len(sf) > 0
If sf <> "." And sf <> ".." Then
If (GetAttr(Folder & sf) And vbDirectory) <> 0 Then
subF.Add Folder & sf
End If
End If
sf = Dir()
Loop
For Each SubFolder In subF
GetFolder CStr(SubFolder), searchF, colFolder
Next
End Sub
閱讀Norie說的[這裏](https://www.mrexcel.com/forum/excel-questions/449193-vba-fastest-most-reliable-way-list-files.html)。 '你可以編寫一個小批處理文件,使用管道將所有文件名和其他信息發送到文本文件。 當我說小我的意思是小 - 它可能是一行代碼。 生成的文本文件可以很容易地在Excel中打開。或者寫在那裏的代碼。 – danieltakeshi
@danieltakeshi那麼問題就出現在我將不得不創建臨時文件和它們隨附的所有問題,或者你知道一種方法來簡單地處理vba中的臨時文件嗎? – Jonathan
嗯,我不知道。我要做的是在每次搜索工作簿打開時獲取所有目錄的數據庫列表,然後您可以在Excel內進行儘可能多的搜索。 – danieltakeshi