通过列表优化搜索文件名

时间:2019-07-08 09:59:56

标签: excel vba

我目前正在尝试在文件夹中查找文件,然后将其移到单独的目标文件夹中。我在相应文件夹的列旁边有一个文件名列。这些文件的名称为FILENAME_Ver_X,并且在不同文件类型的文件夹中应各有两个。

此刻,我的代码遍历每个文件,读取是否包含FILENAME字符串,如果包含,则将其移至该文件夹。但是,这非常慢,因为有大量文件,所以我想知道是否有更好的方法来搜索所有文件。

Set objFolder = fso.GetFolder(Viewables)
Do While r <= maxRows
d = Rng(r, 1) & "_Ver_"
e = Rng(r, 2)
For Each f1 In objFolder.Files
    If InStr(1, Left(f1.Name, Len(d)), d) > 0 Then
    tPath = ActiveWorkbook.Path & "\" & e & "\"
    fso.MoveFile (Viewables & f1.Name), tPath

    End If
Next
r = r + 1
Loop

1 个答案:

答案 0 :(得分:0)

也许您只是使用vba循环浏览文件夹,然后每个文件夹使用一次Windows级移动命令

move命令将允许使用通配符,因此vba可以提供原始路径和move命令逻辑

因此,您最终每个文件夹运行一次移动命令

您可以在审计前后记录日志的路径和路径中的文件数