单元格值=来自超链接路径的lastmodifieddate

时间:2019-03-05 09:54:39

标签: excel vba excel-formula

很难解释,但是我的照片会清楚。

我的Excel工作表的a列中有超链接,该超链接链接到用于打开的文件 但是如何从l列

中的文件获取lastmodifieddate

示例:a22链接到文件vimco,所以该文件的最后修改日期是在22中输入

the picture here

  

也并非a列中的所有行都有超链接,并且还包含一个空   还是没有链接的单元格,如果是这样,那么列中什么也不需要显示   如果a为空白或未链接,则必须为空白

     

可以制定公式吗?所以我输入单元格= moddate然后显示   日期   现在还可以

好,现在获取代码

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 :(得分:1)

您可以在VBA中创建自定义函数,然后在Excel工作表中使用它。 为此,您需要在VBA中使用FileDateTime函数来创建如下内容:

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

现在,您可以将此函数用作普通的Excel函数,并使用超链接作为参数填写单元格。像这样:=GetDatetime(A1)。如果A1中有超链接,它将返回日期。