В одном файле макрос отрабатывает Во втором не хочет Сверил подключенные библиотеки Все один в один
С чем связана проблема, понять не могу.
[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 = "Äàòà èçìåíåíèÿ"
Кто может подсказать, с чем это связано... Дома попробую на разных версиях 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 = "Äàòà èçìåíåíèÿ"
На скоростях все делаю.. времени это вставить и взлетит [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]
На скоростях все делаю.. времени это вставить и взлетит [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