【问题标题】:Cell value = lastmodifieddate from hyperlink path单元格值 = 来自超链接路径的 lastmodifieddate
【发布时间】:2019-03-25 16:36:22
【问题描述】:

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

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

示例:a22 链接到文件 vimco,因此该文件的最后修改日期必须在 l22 中

the picture here

也不是 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 来创建一个 UDF,该 UDF 返回文件的最后修改。
  • 不管它是怎样的方式都足够好,是的,如果我关闭工作簿并且在我再次打开一周后它会保持上次修改的日期。它是人员表,所以我复制该表以在仓库中添加新人员
  • 关于计算。检查计算是否转为手动。

标签: excel vba excel-formula


【解决方案1】:

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

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

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

【讨论】:

  • 你在第一栏具体填写了什么?您所指的单元格是否包含文件超链接,如果是,它指向什么?您也可以在函数中添加这一行:debug.print r.Hyperlinks(1).Address。它在即时窗口中显示什么?
  • i 填充公式 = GetDatetime(A38) l 38 返回#VALUE!如果添加了 debug.print r.Hyperlinks(1).Address 也仍然
  • debug.print 行只会在 VBA 的即时窗口中显示超链接地址。这样,您可以检查为什么该功能无法找到超链接地址的日期。超链接地址应该是文件路径。
  • 如果我检查超链接配置,它链接到 C:\Users\bornt\Desktop\test.xlsx 链接是正确的
  • 那不是立即窗口。如果您在 VBA 中,可以使用 ctrl+G 打开即时窗口。您还可以检查该功能是否以不同的方式工作:代替r.Hyperlinks(1).Address填写"C:\Users\bornt\Desktop\test.xlsx"并检查您是否得到答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 2012-03-01
  • 1970-01-01
相关资源
最近更新 更多