Dim FSO As Object
    Dim FromPath As String
    Dim ToPath As String
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objSubFolder As Object
    Dim fil As File

    With Application.FileDialog(msoFileDialogFolderPicker) 'Choosing FromPath
        .Show
        FromPath = .SelectedItems(1) & "\"
    End With

    With Application.FileDialog(msoFileDialogFolderPicker) 'Choosing ToPath
        .Show
        ToPath = .SelectedItems(1) & "\"
    End With


   Set objFSO = CreateObject("Scripting.FileSystemObject")
   Set objFolder = objFSO.GetFolder(FromPath)
   For Each objSubFolder In objFolder.SubFolders
        **Set fils = fsoC.GetFolder(objSubFolder & "\").Files**

        For Each fil In fils
            If LCase(Right(fil.Name, 3)) = "zip" Then
               MsgBox "this is a zip file "
            Else

Я получаю объект требуемой ошибки в отмеченной строке, и я не понимаю, почему? Кто-нибудь может мне помочь ?

1 ответ1

0

fsoC кажется, не объявлен / не создан в вашем скрипте. Может быть, вы хотели бы использовать objFSO снова?

Редактировать :

Sub test()
 Dim fils As Object
 Dim fil As Object
 Dim FromPath As String
 Dim ToPath As String
 Dim objFSO As Object
 Dim objFolder As Object
 Dim objSubFolder As Object

 With Application.FileDialog(msoFileDialogFolderPicker) 'Choosing FromPath
     .Show
     FromPath = .SelectedItems(1) & "\"
 End With

 With Application.FileDialog(msoFileDialogFolderPicker) 'Choosing ToPath
     .Show
     ToPath = .SelectedItems(1) & "\"
 End With


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(FromPath)
For Each objSubFolder In objFolder.SubFolders
   Set fils = objFSO.GetFolder(objSubFolder & "\").Files

   For Each fil In fils
      If LCase(Right(fil.Name, 3)) = "zip" Then
         MsgBox "this is a zip file "
      Else
         MsgBox "NOPE"
      End If
    Next
Next
End Sub

Этот код работает со следующей папкой:

A
-- A.1
---- test.txt
---- test.zip

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .