Страницы: 1
RSS
Перебор файлов в папках
 
Всем привет! Раньше для работы сразу с несколькими файлами (копирование, редактирование и т.д.) в одной папке использовал такой код:
Код
Dim abook As Workbook
    Set abook = ActiveWorkbook
    Dim daway As String, item As String
    Dim somebook As Excel.Workbook
    With Application.FileDialog(msoFileDialogFolderPicker)
        .ButtonName = "OK"
        .Title = "Выбери папку с файлами, которые надо перебрать"
        If .Show = 0 Then
            Exit Sub
        End If
        daway = .SelectedItems(1)
    End With
    item = Dir(PathName:=daway + "\*.xls*")
    Do Until item = ""
        Set somebook = Workbooks.Open(daway + "\" + item)
        'Действия с книгой
        somebook.Close
        item = Dir
    Loop
    Set somebook = Nothing

Теперь условия изменились. В целевой папке содержатся не файлы, а много папок, в каждой из которых несколько файлов, которые надо обработать. Т.е. надо перебирать папки, а потом уже файлы внутри. Вложенный цикл должен получиться. Что-то вроде for each %переменная, обозначающая папку% in daway
Помогите пожалуйста его организовать.
 
ПРОСМОТРЕТЬ ВСЕ ФАЙЛЫ В ПАПКЕ
По ссылке есть код, с возможность выбора параметра - смотреть во вложенных папках или нет
Согласие есть продукт при полном непротивлении сторон
 
Код
Private Sub Комманда1_Click()
 Dim FSO As Object
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Search FSO.GetFolder("D:\")
End Sub
 
 Sub Search(Fold As Object)
 Dim SubFold As Object, Fil As Object
   Debug.Print Fold
   On Error GoTo ErrHandle
   For Each SubFold In Fold.SubFolders
     Search SubFold
   Next SubFold
   For Each Fil In Fold.Files
        Debug.Print Fil
   Next Fil
   Exit Sub
ErrHandle:
   MsgBox "Нет допуска к папке """ & Fold.Path & """"
   Err.Clear
End Sub
 
Спасибо!!! Оба варианта классные!
Страницы: 1
Наверх