【发布时间】:2019-03-25 16:36:22
【问题描述】:
很难解释,但我的图片会很清楚。
我的 Excel 工作表在 a 列中有超链接,链接到要打开的文件 但是如何从 l 列中的该文件中获取 lastmodifieddate
示例:a22 链接到文件 vimco,因此该文件的最后修改日期必须在 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 来创建一个 UDF,该 UDF 返回文件的最后修改。
-
不管它是怎样的方式都足够好,是的,如果我关闭工作簿并且在我再次打开一周后它会保持上次修改的日期。它是人员表,所以我复制该表以在仓库中添加新人员
-
关于计算。检查计算是否转为手动。
标签: excel vba excel-formula