Значение ячейки = дата последнего изменения из пути гиперссылки - PullRequest
0 голосов
/ 05 марта 2019

Трудно объяснить, но моя картинка прояснит это.

В моем листе Excel есть гиперссылки в столбце a, которые ссылаются на файл для открытия, но как получить последнюю измененную дату из этого файла в столбце l

Пример: a22 связан с файлом vimco, поэтому последняя измененная дата из этого файла должна быть в l22

изображение здесь

также не все строки в столбце a имеют гиперссылки и содержат также пустую или несвязанную ячейку, поэтому, если это так, в столбце l ничего не должно отображаться, оно должно быть пустым, если поле пустое или не связано

canэто сделать формулу?поэтому я набираю cell = moddate и затем показываю, что с датой все в порядке

ok получил код сейчас

Function GetDateTime(myCell As Range) As Date
    Dim myHyperlink As Hyperlink
    Dim Filename As String
    Application.Volatile
    On Error Resume Next
        Set myHyperlink = myCell.Hyperlinks(1)
    On Error GoTo 0
    If Not myHyperlink Is Nothing Then
        Filename = myHyperlink.Address
            'If it is a relative address insert this workbook's path
        If Not (Filename Like "\\*" Or Filename Like "[A-Z]:\*") Then
            Filename = ThisWorkbook.path & "\" & Filename
        End If
        If Dir(Filename, vbNormal) <> "" Then
            GetDateTime = FileDateTime(Filename)
        Else
            GetDateTime = ""
        End If
    Else
        GetDateTime = ""
    End If
End Function

но теперь вторая вещь, если ссылка изменится или я открою свойрабочая книга или листы подкачки не обновляют значение getdatetime - это можно исправить?

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете создать пользовательскую функцию в VBA и использовать ее на листе Excel.Для этого вам понадобится функция FileDateTime в VBA, чтобы создать что-то вроде этого:

Function GetDateTime(r As Range) As Date
GetDateTime = FileDateTime(r.Hyperlinks(1).Address)
End Function

Теперь вы можете использовать эту функцию как обычную функцию Excel и заполнить ячейку гиперссылкой в ​​качестве параметра.Как это: =GetDatetime(A1).Если в А1 есть гиперссылка, она вернет дату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...