Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Создание реестра папок с содержимым фалов и с гиперссылкой на папки и файлы.
 
Создал реестр файлов из папок с помощью инструмента "Импорт метаданных и ссылок о файлах в папке".
Необходимо создать аналогичный реестр, только чтобы были папки с файлами и возможностью, проваливаться в папку и открывать по гиперссылке нужный документ.
 
Цитата
Алексей Панов написал:
Необходимо создать аналогичный реестр, только чтобы были папки с файлами и возможностью, проваливаться в папку и открывать по гиперссылке нужный документ
Ответ тут при такой постановке вопроса.
По вопросам из тем форума, личку не читаю.
 
Надменность в общении чревата ожирением самомнения
 
Алексей Панов, неуважение к правилам форума - чревато отсутствием помощи)  Вам просто намекнули то что постановка задачи не соответствует правилам загляните туда...
https://www.planetaexcel.ru/techniques/3/45/
Изменено: Mershik - 15.04.2021 15:06:27
Не бойтесь совершенства. Вам его не достичь.
 
Форум создан не для намёков, а для продуктивного общения и неуважение не к форуму, а к тем кто  искажает его предназначение.

  • Если вас бесит чья-то тупость, вы ещё недостаточно умны.
 
Алексей Панов, прям завалили афоризмами
 
Кроме Павлова на этом ресурсе одно пустобрёхство. Надеялся получить конструктивную информацию с объяснением, а на выходе  ссылки на саморазвитие.  
 
Мне кажется, вы очень агрессивно ведёте диалог, я думаю мало кто захочет вам помогать
 
Цитата
Алексей Панов написал:
ожирением самомнения
как минимум для моего ожирения есть основание, а вот у цитатника ... даже малейшего представления о разнице форума и авторешалки нет.

Цитата
Алексей Панов написал:
Кроме Павлова на этом ресурсе одно пустобрёхство.
так напишите ему, пусть форум закроет, или ищите другой, где на запрос  - "Мне надо ... " без приветсвия и примера,  слетается рой помогающих.  Или просто так и напишите, Николай
Цитата
Алексей Панов написал:
Необходимо создать аналогичный реестр,
и ждите пока он все бросит и начнет творить.

Цитата
Алексей Панов написал:
а к тем кто  искажает его предназначение.
что-то  мне подсказывает что вы тоже искажаете свое предназначение.
Изменено: БМВ - 15.04.2021 20:39:06
По вопросам из тем форума, личку не читаю.
 
Моё общение абсолютно зеркальное к оппоненту. Объясняя человеку нужно уметь слушать и слышать. Мало знать, нужно уметь донести. Специалисткой знающих много, а объясняющий единицы. На форумах проявляются высокомерные павлины, от которых толку ноль, только перенаправляют, да умничают. Начинающему от форума нужна конкретика виде формулы и примера, не пересылка на материал, на который можно выйти и без помощи форума.
 
Код
Option Explicit

Dim fso As Object
Dim y As Long

Const sPATH = "C:\tmp\"

Sub FillRef()
    Set fso = CreateObject("Scripting.FileSystemObject")
        
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    
    Dim wb As Workbook
    Set wb = Workbooks.Add(1)
    Dim sh As Worksheet
    Set sh = wb.Sheets(1)
    
    y = 0
    GetFromSubFolders sPATH, dic, sh, 1
    
    wb.Saved = True
End Sub

Public Sub GetFromSubFolders(sPATH As String, dicPath As Object, sh As Worksheet, x As Integer)
    
    Dim objFolder As Object
    Dim objFile As Object
    
    If Not fso.FolderExists(sPATH) Then Exit Sub 'август
    Set objFolder = fso.GetFolder(sPATH)
    
'    On Error Resume Next
    
'            For Each objFolder In objFolder.SubFolders
'                dicPath.Add objFolder.Path & "\", ""
'                DoEvents
'            Next
'            Set objFolder = fso.GetFolder(sPath) 'после цикла вернуть значение
            
            y = y + 1
            sh.Cells(y, x).Value = objFolder.Path
            sh.Hyperlinks.Add Anchor:=sh.Cells(y, x), Address:=sh.Cells(y, x).Value, TextToDisplay:=sh.Cells(y, x).Value
            
            For Each objFile In objFolder.Files
                'Если количество файлов больше ограничения, то выход из макроса.
                With objFile
                    'If fso.GetExtensionName(LCase(.Name)) Like (LCase(sTargetType) & "*") Then
                        If Left(.Name, 2) <> "~$" Then
                            If .Name <> ThisWorkbook.Name Then
                                dicPath.Add .Path, .Name
                                
                                y = y + 1
                                sh.Cells(y, x + 1).Value = .Path
                                sh.Hyperlinks.Add Anchor:=Cells(y, x + 1), Address:=sh.Cells(y, x + 1).Value, TextToDisplay:=sh.Cells(y, x + 1).Value
            
                            End If
                        End If
'                    End If
                End With
                DoEvents
            Next
        
            For Each objFolder In objFolder.SubFolders
                GetFromSubFolders objFolder.Path & "\", dicPath, sh, x + 2
                DoEvents
            Next
    
    On Error GoTo 0
End Sub
 
МатросНаЗебре,  а к чему словарь?

Цитата
Алексей Панов написал:
На форумах проявляются высокомерные павлины, от которых толку ноль, только перенаправляют, да умничают.
Полностью согласен, добро пожаловать в их ряды.

Цитата
Алексей Панов написал:
Начинающему от форума нужна конкретика виде формулы и примера, не пересылка на материал, на который можно выйти и без помощи форума.
Это ваша субъективная точка зрения и она описывает форум как авторешалку. В же не потрудились даже описать что хотите получит в итоге, что означает
Цитата
Алексей Панов написал:
проваливаться в папку
именно по этому такие задачи отправляются в ветку работа.
По вопросам из тем форума, личку не читаю.
 
Цитата
Алексей Панов написал:
Кроме Павлова на этом ресурсе одно пустобрёхство
А как же все те, кто не вопрошает, а реально помгает на этом форуме? Ведь тысячи человек получили здесь эту помощь, а Вы их всех оскорбили, обозвав пустобрехами.
Может пора извиниться?
 
Цитата
Алексей Панов написал:
нужна конкретика виде формулы и примера,
Вот это верно! И где5 Ваш пример?
А будуте продолжать в том же стиле (про павлинов) - получите бан!
 
Помощь по разному можно оказать. Можно в виде подачки с высокомерным исполнение, можно по-человечески. Не все на форуме ведут себя с позиции «Я гений, ты пустышка, но такие встречаются и вот к ним и относится, всё
о чём выше сказано.
Решение по составлению реестра папок, нашёл на другом ресурсе. Правда, пока ещё не примерил.        А в целом, не мешало бы, как на Али экспресс, звёздами отмечать два критерия оценки «Решение» и «Общение» и всё было бы наглядно видно кто есть кто.
За предоставленную информацию благодарю.
 
Цитата
Алексей Панов написал:
А в целом, не мешало бы, как на Али экспресс
Вы уверены, что к форуму стоит подходить ровно также, как к торговой площадке? Всё для клиента, всё для потребителя. Не мало уже коллег прекратило отвечать на форуме именно из-за такого потребительского отношения ТСов.
Ну, и опять же, если вы хотите какого-то расширения форумного движка, то предложите Павлову некоторые средства для такой реализации :)
 
Алексей Панов, в чем проблема? Если бы Вы ознакомились с првилами форума и нормально создали тему, никаких претензий не было бы.
Помните пословицу о соринке и бревне в глазах?
 
Цитата
БМВ написал:
а к чему словарь?
Использую его, так как в него удобно добавлять новые элементы.
Массив с переменной длиной нужно для каждого элемента увеличивать.
А для массива с постоянной длиной на начало расчёта неизвестно количество элементов.
 
OFF
Цитата
МатросНаЗебре: в него удобно добавлять новые элементы
приветствую! Можно ещё к коллекции присмотреться - она встроенная и не нужно подключать библу. Хотя, я сам такой же и часто юзаю словарь даже там, где контролем уникальных и не пахнет))) быстрый он и удобный  :D
Изменено: Jack Famous - 19.04.2021 11:06:07
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) [►Кошелёк и контакты◄]
 
Jack Famous, приветствую! Тоже нравится использовать словарь. Иногда привычка использовать его берёт верх над рациональными рассуждениями, как, например, в этой задаче )
 
Цитата
МатросНаЗебре написал:
Массив с переменной длиной нужно для каждого элемента увеличивать. А для массива с постоянной длиной на начало расчёта неизвестно количество элементов.
определили с запасом, обрезали по факту. хотя и считается что это медленно, но нужно проверять. Только я не вижу чтоб оно было нужно рекурсия без него работает, результат сразу выводится. какой смысл???

пока писал появилось это
Цитата
МатросНаЗебре написал:
рациональными рассуждениями, как, например, в этой задаче
и оно все ставит на свои места. :-)
Изменено: БМВ - 19.04.2021 12:57:57
По вопросам из тем форума, личку не читаю.
Страницы: 1
Читают тему (гостей: 1)
Наверх