VBA 将文件扩展名验证为 excel 文件?

Myl*_*ier 0 excel vba

我运行这个 vba,它遍历文件夹并提取它在一张大表中编译的数据。我的问题是我收到了一个名为 thumbs.db 的隐藏文件的错误,我需要添加一些东西,以便它验证它只是提取带有 xlsx 扩展名的文件。下面是我正在使用的代码。

Sub DoFolder(Folder)
    Dim SubFolder As Folder
    Dim i As Integer
    Dim CopyR As Range

    For Each SubFolder In Folder.SubFolders
        DoFolder SubFolder
    Next

    If Folder.SubFolders.Count = 0 Then
        If Folder.Files.Count = 1 Then
            If Mid(Folder.Files, Len(Folder.Files) - 3, 4) = "xlsx" Then
            Else: MsgBox "2+ files: " & Folder.Path
            End If
        End If

        For Each File In Folder.Files
            Hoover File
        Next
    Else
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我想弄清楚的问题是

If Mid(Folder.Files, Len(Folder.Files) - 3, 4) = "xlsx" Then
Run Code Online (Sandbox Code Playgroud)

对此的任何帮助将不胜感激

小智 5

Folder.Files 是一个集合而不是一个字符串。

递归文件搜索:

Sub DoFolder(FolderName As String, Optional fso As Object)
    Dim f As Object, MySubFolder As Object, RootFolder As Object
    Dim cFiles As Collection

    If fso Is Nothing Then Set fso = CreateObject("Scripting.FileSystemObject")

    Set RootFolder = fso.GetFolder(FolderName)
    For Each MySubFolder In RootFolder.SubFolders
        DoFolder MySubFolder.Path, fso
    Next

    Set cFiles = New Collection
    For Each f In RootFolder.Files
        If f.Name Like "*xls*" Then cFiles.Add f
    Next

    If cFiles.Count > 0 Then
        MsgBox cFiles.Count & " files found in " & RootFolder.Name
        For Each f In cFiles
            Hoover f
        Next
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)