Excel: просмотр вложенных папок и копирование файлов вставки: объект требуется ошибка - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь перебрать корневую папку и ее подпапки, подпапки подпапок и скопировать и вставить их файлы в какое-то новое место:

  Sub Main()
    Dim source As String
    Dim destination As String
    source = ThisWorkbook.Worksheets(1).Cells(1, 2).Value
    destination = ThisWorkbook.Worksheets(1).Cells(2, 2).Value

    'copy files in root folder
    Call DoFolder(source, destination)

    'loop through nested folders
    Dim FileSystem As Object
    Set FileSystem = CreateObject("Scripting.FileSystemObject")

    Dim subFolder As Variant
    subFolder = FileSystem.GetFolder(source)

    'Dim subFolder As Variant
    For Each subFolder In subFolder.SubFolders
        MsgBox (subFolder.Name)
        Debug.Print subFolder.Name

        Call DoFolder(subFolder.Name, destination)
    Next


End Sub

Sub DoFolder(source As String, destination As String)

    'copy files in root folder
    Call Copy(source, destination)

End Sub

Sub Copy(source As String, destination As String)
   Dim fileObject As String
   fileObject = Dir(source & "*.*")
   Do While fileObject <> ""
        FileCopy source & fileObject, destination & fileObject
        fileObject = Dir
    Loop

    MsgBox ("DONE")
End Sub

Однако я получаю object required ошибку в Main саб.Как мне это исправить?

1 Ответ

0 голосов
/ 15 октября 2018

Я всегда объявляю переменные как ожидаемый тип.В этом случае это также решает вашу проблему.Попробуйте этот код:

Dim fso As FileSystemObject
Set fso = New FileSystemObject

Dim subFolder As Folder
Set subFolder = fso.GetFolder(source)

For Each subFolder In subFolder.SubFolders
   MsgBox subFolder.Name
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...