Подскажите как реализовать задачу: Необходимо в директории (предположим - C:\direct) найти папку с названием из ячейки "A1" (с учетом подпапок) и создать гиперссылку на нее в ячейке "B1"
Путь к искомой папку можно получить с помощью CMD команды dir /a:d/b/s <имяПапки> . Если это требуется сделать не для одной ячейки, а для целого столбца, лучше получить список всех подпапок командой dir /a:d/b/s C:\direct и потом искать в массиве нужные (функция Filter). См. http://www.script-coding.com/WSH/WshShell.html#3.5.
Во первых в данной директории много папок и файлов, во вторых в ней постоянно происходят изменения. Боюсь данный способ рабочий, но очень энергоемкий и неэффективный
Sub Ma()
Const ROOT = "c:\temp\"
Dim x
x = CreateObject("wscript.shell").exec("cmd /c dir /a:d/b/s """ & ROOT & "*" & [A1] & "*""").stdout.readline
If Len(x) = 0 Then Exit Sub
'перекодировка - нужна для русских имен файлов
With CreateObject("ADODB.Stream")
.Type = 2
.Mode = 3
.Open
.Charset = "Windows-1251"
.writetext x
.Position = 0
.Charset = "cp866"
x = .readtext
.Close
End With
'конец перекодировки
ActiveSheet.Hyperlinks.Add [B1], x
End Sub
magistor8 написал: А если каталог ROOT находится на сетевом диске,
Как обращаетесь, так и записать. Если замаплен на литеру, то по имени литеры, если как сетевое имя то \\hostname\sharename\… ну или \\IP Address\sharename\... Казанский, не верю попробуйте \\127.0.0.1\с$ или \\localhost\c$ :-)