Все с днем авиации и космонавтики.. сейчас эти "отрасли" без программистов существовать не смогут, как и почти любые другие.. я тоже к сожалению. Макросом (скачал готовый) получил в файл Эксель данные о них: Имя, Путь, и т.п. Имя в столбце "А" со второй строки (первая заголовок), Путь в столбце "В" Чтобы ускорить работу по сортировке данных в папке, где лежать файлы нужно при двойном клике на ячейке "В" (Путь)открывать файл. Файлы могут быть разными- ПДФ, Ворд, Эксель, архив, фото.. Программы, которые открывают эти файлы разумеется на компе есть. Если не по двойному клику, то можно выделить ячейку и кнопкой запускать макрос.. Пример не прикладываю, потому в лимиты размера не вхожу....
Все с днем авиации и космонавтики.. сейчас эти "отрасли" без программистов существовать не смогут, как и почти любые другие.. я тоже к сожалению. Макросом (скачал готовый) получил в файл Эксель данные о них: Имя, Путь, и т.п. Имя в столбце "А" со второй строки (первая заголовок), Путь в столбце "В" Чтобы ускорить работу по сортировке данных в папке, где лежать файлы нужно при двойном клике на ячейке "В" (Путь)открывать файл. Файлы могут быть разными- ПДФ, Ворд, Эксель, архив, фото.. Программы, которые открывают эти файлы разумеется на компе есть. Если не по двойному клику, то можно выделить ячейку и кнопкой запускать макрос.. Пример не прикладываю, потому в лимиты размера не вхожу....ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Не знаю что нашли вы готового, вот ещё вариант. Возможно это то же самое что и у вас. Без примера не ясно. Попробуйте.
Sub FileList() Dim V AsString Dim BrowseFolder AsString
'открываем диалоговое окно выбора папки With Application.FileDialog(msoFileDialogFolderPicker)
.title = "Выберите папку или диск"
.Show OnErrorResumeNext
Err.Clear
V = .SelectedItems(1) If Err.Number <> 0Then
MsgBox "Вы ничего не выбрали!" ExitSub EndIf EndWith
BrowseFolder = CStr(V)
'добавляем лист и выводим на него шапку таблицы
ActiveWorkbook.Sheets.Add With Range("A1:E1")
.Font.Bold = True
.Font.Size = 12 EndWith
Range("A1").Value = "Имя файла"
Range("B1").Value = "Путь"
Range("C1").Value = "Размер"
Range("D1").Value = "Дата создания"
Range("E1").Value = "Дата изменения"
'вызываем процедуру вывода списка файлов 'измените True на False, если не нужно выводить файлы из вложенных папок
ListFilesInFolder BrowseFolder, True EndSub
Dim FSO AsObject Dim SourceFolder AsObject Dim SubFolder AsObject Dim FileItem AsObject Dim r AsLong
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
ActiveSheet.Hyperlinks.Add Range("a" & Rows.Count).End(xlUp), FileItem.Path, "", _ "Открыть файл" & vbNewLine & FileItem.Name
Next FileItem 'вызываем процедуру повторно для каждой вложенной папки If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders
ListFilesInFolder SubFolder.Path, True Next SubFolder EndIf
Columns("A:E").AutoFit Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing EndSub
Не знаю что нашли вы готового, вот ещё вариант. Возможно это то же самое что и у вас. Без примера не ясно. Попробуйте.
Sub FileList() Dim V AsString Dim BrowseFolder AsString
'открываем диалоговое окно выбора папки With Application.FileDialog(msoFileDialogFolderPicker)
.title = "Выберите папку или диск"
.Show OnErrorResumeNext
Err.Clear
V = .SelectedItems(1) If Err.Number <> 0Then
MsgBox "Вы ничего не выбрали!" ExitSub EndIf EndWith
BrowseFolder = CStr(V)
'добавляем лист и выводим на него шапку таблицы
ActiveWorkbook.Sheets.Add With Range("A1:E1")
.Font.Bold = True
.Font.Size = 12 EndWith
Range("A1").Value = "Имя файла"
Range("B1").Value = "Путь"
Range("C1").Value = "Размер"
Range("D1").Value = "Дата создания"
Range("E1").Value = "Дата изменения"
'вызываем процедуру вывода списка файлов 'измените True на False, если не нужно выводить файлы из вложенных папок
ListFilesInFolder BrowseFolder, True EndSub
Dim FSO AsObject Dim SourceFolder AsObject Dim SubFolder AsObject Dim FileItem AsObject Dim r AsLong
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
ActiveSheet.Hyperlinks.Add Range("a" & Rows.Count).End(xlUp), FileItem.Path, "", _ "Открыть файл" & vbNewLine & FileItem.Name
Next FileItem 'вызываем процедуру повторно для каждой вложенной папки If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders
ListFilesInFolder SubFolder.Path, True Next SubFolder EndIf
Columns("A:E").AutoFit Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing EndSub
Возможно это то же самое что и у вас. Без примера не ясно. Попробуйте его.
Уважаемый gling, в интернете инфы навалом, но я разобраться в ней не могу.. нет у меня таланта к программированию. Из кода приложенного вами - первый очень похож на мой. Им я создаю лист в Эксель с именем и путем к файлам.. Дальше хотелось через полученные данные быстро открывать файлы. Из того, что нашел и попробовал - открывает файл ПДФ в Эксель.. Но делал не по двойному клику, а просто сразу в коде прописывал путь. Думал, если получится, то дальше как то вместо переменной путь по двойному клику заносил (это теория и пока не представляю как бы делал)
Workbooks.Open ("C:/данные.pdf")
- пробовал вот так, но только свой Путь указывал.. открывался он в Эксель.
Возможно это то же самое что и у вас. Без примера не ясно. Попробуйте его.
Уважаемый gling, в интернете инфы навалом, но я разобраться в ней не могу.. нет у меня таланта к программированию. Из кода приложенного вами - первый очень похож на мой. Им я создаю лист в Эксель с именем и путем к файлам.. Дальше хотелось через полученные данные быстро открывать файлы. Из того, что нашел и попробовал - открывает файл ПДФ в Эксель.. Но делал не по двойному клику, а просто сразу в коде прописывал путь. Думал, если получится, то дальше как то вместо переменной путь по двойному клику заносил (это теория и пока не представляю как бы делал)
Workbooks.Open ("C:/данные.pdf")
- пробовал вот так, но только свой Путь указывал.. открывался он в Эксель.ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Самостоятельно конечно же предложенные макросы не проверили. Понимаю, охота готовое решение. Попробуйте тыкнуть сначала на кнопочку, а потом в любое название файла в столбце А.
Самостоятельно конечно же предложенные макросы не проверили. Понимаю, охота готовое решение. Попробуйте тыкнуть сначала на кнопочку, а потом в любое название файла в столбце А.gling
Уважаемый gling, Я попробовал, но скопировал только второй макрос в свой файл.. при запуске ошибка.. Начал делать образец с файлом и несколькими файлами, чтобы выложить для образца. Пока делал - вы новый ответ написали.. прошу прощения за торопливость. Ваш вариант с гиперссылками тоже класс! Для моей работы (первого этапа) самое то!
Уважаемый gling, Я попробовал, но скопировал только второй макрос в свой файл.. при запуске ошибка.. Начал делать образец с файлом и несколькими файлами, чтобы выложить для образца. Пока делал - вы новый ответ написали.. прошу прощения за торопливость. Ваш вариант с гиперссылками тоже класс! Для моей работы (первого этапа) самое то!ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Щас буду ломать голову - куда вставлять макрос.. в модуль отдельный или на лист. Точнее я попробовал и туда и сюда... Но файл не открывается..ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
да я везде попробовал, на Листе, где Имя файла и Путь в первую очередь, но учитывая мои способности - пробую новый файл маленький сделать по пробовать - не выйдет, то сделаю выложу пример на форум..
да я везде попробовал, на Листе, где Имя файла и Путь в первую очередь, но учитывая мои способности - пробую новый файл маленький сделать по пробовать - не выйдет, то сделаю выложу пример на форум..ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Уж дюже любопытно поглядеть на файл, где это не работает.
В архиве папка, которую нужно на диске D сохранить. В ней файл "на форум", в котором у меня не получается предложенные макросы применить.. точнее макрос уважаемого RAN,
Уж дюже любопытно поглядеть на файл, где это не работает.
В архиве папка, которую нужно на диске D сохранить. В ней файл "на форум", в котором у меня не получается предложенные макросы применить.. точнее макрос уважаемого RAN,ovechkin1973
Все работает! Благодарю! Извиняюсь, что не верно задачу пояснил.. Нужно было сразу пример сделать. И надеюсь Уважаемые модераторы на зачтут, что нарушаю правила форума... Что в коде нужно изменить, чтобы файл не открывался, а показывался в папке, где его макрос находит? Бывает необходимость, что нужно удалить или переименовать...
Все работает! Благодарю! Извиняюсь, что не верно задачу пояснил.. Нужно было сразу пример сделать. И надеюсь Уважаемые модераторы на зачтут, что нарушаю правила форума... Что в коде нужно изменить, чтобы файл не открывался, а показывался в папке, где его макрос находит? Бывает необходимость, что нужно удалить или переименовать...ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.