Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Метод ListFilesInFolder не исполняется - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Метод ListFilesInFolder не исполняется (Макросы/Sub)
Метод ListFilesInFolder не исполняется
ant6729 Дата: Четверг, 05.04.2018, 16:12 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
ListFilesInFolder не могу исполнить

В одном файле макрос отрабатывает
Во втором не хочет
Сверил подключенные библиотеки
Все один в один

С чем связана проблема, понять не могу.

[vba]
Код
Sub FileList()
    Dim V As String
    Dim BrowseFolder As String
     
    'îòêðûâàåì äèàëîãîâîå îêíî âûáîðà ïàïêè
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Âûáåðèòå ïàïêó èëè äèñê"
        .Show
        On Error Resume Next
        Err.Clear
        V = .SelectedItems(1)
        If Err.Number <> 0 Then
            MsgBox "Âû íè÷åãî íå âûáðàëè!"
            Exit Sub
        End If
    End With
    BrowseFolder = CStr(V)
     
    'äîáàâëÿåì ëèñò è âûâîäèì íà íåãî øàïêó òàáëèöû
    ActiveWorkbook.Sheets.Add
    With Range("A1:E1")
        .Font.Bold = True
        .Font.Size = 12
    End With
    Range("A1").Value = "Èìÿ ôàéëà"
    Range("B1").Value = "Ïóòü"
    Range("C1").Value = "Ðàçìåð"
    Range("D1").Value = "Äàòà ñîçäàíèÿ"
    Range("E1").Value = "Äàòà èçìåíåíèÿ"
     
    'âûçûâàåì ïðîöåäóðó âûâîäà ñïèñêà ôàéëîâ
    'èçìåíèòå True íà False, åñëè íå íóæíî âûâîäèòü ôàéëû èç âëîæåííûõ ïàïîê
    ListFilesInFolder BrowseFolder, True
End Sub
[/vba]

Кто может подсказать, с чем это связано...
Дома попробую на разных версиях Excel, может, в этом...
 
Ответить
СообщениеListFilesInFolder не могу исполнить

В одном файле макрос отрабатывает
Во втором не хочет
Сверил подключенные библиотеки
Все один в один

С чем связана проблема, понять не могу.

[vba]
Код
Sub FileList()
    Dim V As String
    Dim BrowseFolder As String
     
    'îòêðûâàåì äèàëîãîâîå îêíî âûáîðà ïàïêè
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Âûáåðèòå ïàïêó èëè äèñê"
        .Show
        On Error Resume Next
        Err.Clear
        V = .SelectedItems(1)
        If Err.Number <> 0 Then
            MsgBox "Âû íè÷åãî íå âûáðàëè!"
            Exit Sub
        End If
    End With
    BrowseFolder = CStr(V)
     
    'äîáàâëÿåì ëèñò è âûâîäèì íà íåãî øàïêó òàáëèöû
    ActiveWorkbook.Sheets.Add
    With Range("A1:E1")
        .Font.Bold = True
        .Font.Size = 12
    End With
    Range("A1").Value = "Èìÿ ôàéëà"
    Range("B1").Value = "Ïóòü"
    Range("C1").Value = "Ðàçìåð"
    Range("D1").Value = "Äàòà ñîçäàíèÿ"
    Range("E1").Value = "Äàòà èçìåíåíèÿ"
     
    'âûçûâàåì ïðîöåäóðó âûâîäà ñïèñêà ôàéëîâ
    'èçìåíèòå True íà False, åñëè íå íóæíî âûâîäèòü ôàéëû èç âëîæåííûõ ïàïîê
    ListFilesInFolder BrowseFolder, True
End Sub
[/vba]

Кто может подсказать, с чем это связано...
Дома попробую на разных версиях Excel, может, в этом...

Автор - ant6729
Дата добавления - 05.04.2018 в 16:12
Mikael Дата: Четверг, 05.04.2018, 16:33 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
ant6729, а где находится процедура ListFilesInFolder?
Может ее нет во втором файле? :)
 
Ответить
Сообщениеant6729, а где находится процедура ListFilesInFolder?
Может ее нет во втором файле? :)

Автор - Mikael
Дата добавления - 05.04.2018 в 16:33
ant6729 Дата: Четверг, 05.04.2018, 16:52 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
На скоростях все делаю.. времени это вставить и взлетит
[vba]
Код

Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)

Dim fso As Object
Dim SourceFolder As Object
Dim SubFolder As Object
Dim FileItem As Object
Dim r As Long

Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(SourceFolderName)

r = Range("A65536").End(xlUp).Row + 1 'íàõîäèì ïåðâóþ ïóñòóþ ñòðîêó
'âûâîäèì äàííûå ïî ôàéëó
For Each FileItem In SourceFolder.Files
Cells(r, 1).Formula = FileItem.Name
Cells(r, 2).Formula = FileItem.Path
Cells(r, 3).Formula = FileItem.Size
Cells(r, 4).Formula = FileItem.DateCreated
Cells(r, 5).Formula = FileItem.DateLastModified
r = r + 1
x = SourceFolder.Path
Next FileItem

'âûçûâàåì ïðîöåäóðó ïîâòîðíî äëÿ êàæäîé âëîæåííîé ïàïêè
If IncludeSubfolders Then
For Each SubFolder In SourceFolder.SubFolders
ListFilesInFolder SubFolder.Path, True
Next SubFolder
End If

Columns("A:E").AutoFit

Set FileItem = Nothing
Set SourceFolder = Nothing
Set fso = Nothing

End Sub
[/vba]


Сообщение отредактировал ant6729 - Четверг, 05.04.2018, 16:53
 
Ответить
СообщениеНа скоростях все делаю.. времени это вставить и взлетит
[vba]
Код

Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)

Dim fso As Object
Dim SourceFolder As Object
Dim SubFolder As Object
Dim FileItem As Object
Dim r As Long

Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(SourceFolderName)

r = Range("A65536").End(xlUp).Row + 1 'íàõîäèì ïåðâóþ ïóñòóþ ñòðîêó
'âûâîäèì äàííûå ïî ôàéëó
For Each FileItem In SourceFolder.Files
Cells(r, 1).Formula = FileItem.Name
Cells(r, 2).Formula = FileItem.Path
Cells(r, 3).Formula = FileItem.Size
Cells(r, 4).Formula = FileItem.DateCreated
Cells(r, 5).Formula = FileItem.DateLastModified
r = r + 1
x = SourceFolder.Path
Next FileItem

'âûçûâàåì ïðîöåäóðó ïîâòîðíî äëÿ êàæäîé âëîæåííîé ïàïêè
If IncludeSubfolders Then
For Each SubFolder In SourceFolder.SubFolders
ListFilesInFolder SubFolder.Path, True
Next SubFolder
End If

Columns("A:E").AutoFit

Set FileItem = Nothing
Set SourceFolder = Nothing
Set fso = Nothing

End Sub
[/vba]

Автор - ant6729
Дата добавления - 05.04.2018 в 16:52
Mikael Дата: Четверг, 05.04.2018, 18:41 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
ant6729, у меня все работает. Давайте не работающий файл-пример.
 
Ответить
Сообщениеant6729, у меня все работает. Давайте не работающий файл-пример.

Автор - Mikael
Дата добавления - 05.04.2018 в 18:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Метод ListFilesInFolder не исполняется (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!