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

Excel 单元格值=超链接路径的lastmodifieddate,excel,vba,excel-formula,Excel,Vba,Excel Formula,很难解释,但我的照片会把它弄清楚的 “我的Excel工作表”在a列中有超链接,链接到要打开的文件 但是如何从l列中的文件中获取lastmodifieddate呢 示例:a22链接到文件vimco,因此该文件的最后一个modifieddate必须在l22中出现 此外,并非列a中的所有行都具有超链接,并且还包含空 或者不链接单元格,如果是,则列中不显示任何内容 l如果a为空或未链接,则必须为空 它能形成一个公式吗?所以我输入cell=moddate,然后显示 日期 现在一切都好了 好的,现在知道密码

很难解释,但我的照片会把它弄清楚的

“我的Excel工作表”在a列中有超链接,链接到要打开的文件 但是如何从l列中的文件中获取lastmodifieddate呢

示例:a22链接到文件vimco,因此该文件的最后一个modifieddate必须在l22中出现

此外,并非列a中的所有行都具有超链接,并且还包含空 或者不链接单元格,如果是,则列中不显示任何内容 l如果a为空或未链接,则必须为空

它能形成一个公式吗?所以我输入cell=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的值,那么这可以修复吗?

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

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

现在,您可以将此函数用作普通Excel函数,并使用超链接作为参数填充单元格。比如:=GetDatetimeA1。如果A1中有超链接,它将返回日期。

据我所知,您需要VBA创建一个UDF,返回文件的上次修改日期。无论这是一种多么好的方法,是的,而且如果我关闭工作簿并在再次打开一周后保持上次修改日期。这是一张人员表,所以我复制该表,在仓库中添加一名新人员。检查是否将计算转换为手动。您在第一栏中具体填写了什么?您引用的单元格是否包含文件超链接?如果是,它指向什么?也可以在函数中添加此行:debug.print r.Hyperlinks1.Address。它在即时窗口中显示了什么?i filled formula=GetDatetimeA38 l 38返回值!同样,如果添加了debug.print r.Hyperlinks1.Address,debug.print行将仅在VBA的即时窗口中显示超链接地址。这样,您就可以检查函数为什么找不到超链接地址的日期。超链接地址应该是一个文件路径。如果我检查超链接配置,它链接到C:\Users\bornt\Desktop\test.xlsx,该链接是正确的,您也可以在即时窗口中看到它?