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

Вход

Регистрация

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

 

= Мир MS Excel/список каталогов с диска в xls(x) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » список каталогов с диска в xls(x) (Макросы/Sub)
список каталогов с диска в xls(x)
lordua Дата: Понедельник, 26.12.2016, 22:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
есть сетевой диск. нужен список корневых каталогов сетевого диска. не дерево, а только первые папки. без файлов. в экселевском файле. скоро в гугле забанят, за однотипные запросы.
 
Ответить
Сообщениеесть сетевой диск. нужен список корневых каталогов сетевого диска. не дерево, а только первые папки. без файлов. в экселевском файле. скоро в гугле забанят, за однотипные запросы.

Автор - lordua
Дата добавления - 26.12.2016 в 22:48
lordua Дата: Понедельник, 26.12.2016, 23:04 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
[vba]
Код
Dim sName As String, oFSO As Object, oItem As Object, li As Long
Set oFSO = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sName = .SelectedItems(1)
End With
Range("A1:B1").Value = Array("Папка", "Дата создания")
For Each oItem In oFSO.GetFolder(sName).SubFolders
li = li + 1
Cells(li, 1).Value = oItem.Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(li, 1), Address:=sName & "\" & oItem.Name, TextToDisplay:=oItem.Name
Cells(li, 2).Value = oItem.DateCreated
Next oItem
[/vba]

извините за беспокойство
 
Ответить
Сообщение[vba]
Код
Dim sName As String, oFSO As Object, oItem As Object, li As Long
Set oFSO = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sName = .SelectedItems(1)
End With
Range("A1:B1").Value = Array("Папка", "Дата создания")
For Each oItem In oFSO.GetFolder(sName).SubFolders
li = li + 1
Cells(li, 1).Value = oItem.Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(li, 1), Address:=sName & "\" & oItem.Name, TextToDisplay:=oItem.Name
Cells(li, 2).Value = oItem.DateCreated
Next oItem
[/vba]

извините за беспокойство

Автор - lordua
Дата добавления - 26.12.2016 в 23:04
Karataev Дата: Понедельник, 26.12.2016, 23:41 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
lordua, Ваш код выдает ошибку, если нужно работать с корневой сетевой папкой.
Dir тоже выдает ошибку при работе с корневой сетевой папкой.
Можно предположить, что нельзя получить список элементов корневой сетевой папки.
 
Ответить
Сообщениеlordua, Ваш код выдает ошибку, если нужно работать с корневой сетевой папкой.
Dir тоже выдает ошибку при работе с корневой сетевой папкой.
Можно предположить, что нельзя получить список элементов корневой сетевой папки.

Автор - Karataev
Дата добавления - 26.12.2016 в 23:41
krosav4ig Дата: Вторник, 27.12.2016, 01:44 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а если попробовать такой изврат?
[vba]
Код
Sub d()
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show Then
            With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0: End With
            CreateObject("wscript.shell").Run _
                "cmd /c dir " & .SelectedItems(1) & _
                " /AD-H-L-S | clip", 0, 1
            With ActiveSheet
                .[A1:B1] = Array("Папка", "Дата создания")
                With Intersect(.UsedRange.Offset(1), .[A:B])
                    .Cells(1, 1).Select
                    .Delete xlUp
                End With
                .PasteSpecial "Текст"
                .UsedRange
                With Intersect(.UsedRange.Offset(1), .[A:A])
                    .Columns(1).TextToColumns [A2], 2, FieldInfo:=Array( _
                    Array(0, 4), Array(10, 9), Array(36, 2)), TrailingMinusNumbers:=1
                    .Offset(, 1).Cut
                    .Insert xlToRight
                    .Offset(.Rows.Count - 3, -1).Resize(2, 2).Delete xlUp
                    .Offset(, -1).Resize(5, 2).Delete xlUp
                End With
            End With
        End If
    End With
    With Application: .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа если попробовать такой изврат?
[vba]
Код
Sub d()
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show Then
            With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0: End With
            CreateObject("wscript.shell").Run _
                "cmd /c dir " & .SelectedItems(1) & _
                " /AD-H-L-S | clip", 0, 1
            With ActiveSheet
                .[A1:B1] = Array("Папка", "Дата создания")
                With Intersect(.UsedRange.Offset(1), .[A:B])
                    .Cells(1, 1).Select
                    .Delete xlUp
                End With
                .PasteSpecial "Текст"
                .UsedRange
                With Intersect(.UsedRange.Offset(1), .[A:A])
                    .Columns(1).TextToColumns [A2], 2, FieldInfo:=Array( _
                    Array(0, 4), Array(10, 9), Array(36, 2)), TrailingMinusNumbers:=1
                    .Offset(, 1).Cut
                    .Insert xlToRight
                    .Offset(.Rows.Count - 3, -1).Resize(2, 2).Delete xlUp
                    .Offset(, -1).Resize(5, 2).Delete xlUp
                End With
            End With
        End If
    End With
    With Application: .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 27.12.2016 в 01:44
Alex_ST Дата: Вторник, 27.12.2016, 09:15 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеПосмотрите в топике Поиск файлов в папке и её подпапках

Автор - Alex_ST
Дата добавления - 27.12.2016 в 09:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » список каталогов с диска в xls(x) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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