在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