Страницы: 1
RSS
Переместить файл с одной директории в другую по гиперссылкам
 
Добрый вечер!

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

Я нашел несколько вариантов копирования, но не могу понять, как их к гиперссылкам применить.
Помогите, пожалуйста.

Пример присылаю, но он совсем никакой и без макроса, т. к. там хаос у меня получается пока что(
Гиперссылки обе на рабочий стол в разные папки.
 
Цитата
Gorr98 написал: самый новый файл
как его определить? по положению в списке или дате сохранения?
 
Цитата
Catboyun написал: по положению в списке или дате сохранения?
По дате, ага.
 
Цитата
Gorr98 написал: забрать оттуда самый новый файл
имеется ввиду, когда он был создан или изменен?
 
Gorr98, копирует файл по его дате изменения:
Код
    Dim Path1, Path2, fPath, lPath, lFile, Max
    Dim i As Variant, j As Variant
    Dim FilesColl As New Collection
    Dim FSO As Object, GetFol As Object, file As Object
    Path1 = Cells(2, 1)
    Path2 = Cells(3, 1)
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set GetFol = FSO.GetFolder(Path1)

    For Each i In GetFol.Files
        If i.Name Like "*" Then FilesColl.Add i.Path
    Next i
    
    Max = 0
    For j = 1 To FilesColl.Count
        fPath = FilesColl(j)
        Set file = FSO.GetFile(fPath)
        If file.DateLastModified > Max Then
            Max = file.DateLastModified
            lPath = fPath
        End If
    Next j
    
    lFile = FSO.GetFileName(lPath)
    FileCopy lPath, Path2 & "\" & lFile
    
    Set FSO = Nothing
    Set GetFol = Nothing
    Set file = Nothing
p.s. гиперссылки на листе не обязательны(если вы не переходите по ним в папки), достаточно указать пути к папкам в текстовом формате.
 
Цитата
Jungl написал: файл по его дате изменения:
Jungl. спасибо большое - полезная вещь  :) Last_File
Цитата
Gorr98 написал: Нужно пройти по одной ссылке
тут прошли недавно (таблица с гиперссылками на файлы. Поочередно макрос их открывает) - если всё-таки надо
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Спасибо, интересные решения вижу, работают)

А вот это - Set FSO = CreateObject("Scripting.FileSystemObject") - несколько раз встречал, почему всегда fso называют? Файловой системы объект? Это какое-то зарезервированное имя переменной или просто так понятно?

И как быть, если гиперссылки вдруг связаны с текстом? Связаны так, что в ячейке не отображается путь, а какой-нибудь левый текст (как в примере, я приложу)?
В этом случае у меня не получается запустить код, т.к. он думает, что текст из ячейки - это путь и выдает ошибку.  
 
Цитата
Gorr98 написал: почему всегда fso называют
Просто принятый обществом стандарт именования объекта ("FSO" - FileSystemObject), так то можно назвать как душе угодно.
Цитата
Gorr98 написал: если гиперссылки вдруг связаны с текстом?
Ну нельзя быть настолько ленивым, это все легко ищется в поисковиках:
Код
If Cells(1, 1).Hyperlinks.Count > 0 Then
   GetURL = Cells(1, 1).Hyperlinks(1).Address
End If
Так же можете поискать ЭТО, дабы избежать ошибок :)
 
Мне было непонятно, как применить то, что я находил в интернете к коду, что написан выше)
Спасибо, господа, буду разбираться)  
 
Цитата
Gorr98 написал: как быть, если гиперссылки вдруг связаны с текстом? Связаны так, что в ячейке не отображается путь
файл не смотрела...
это находили?
Как получить адрес гиперссылки из ячейки
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх