很难解释,但是我的照片会清楚。
我的Excel工作表的a列中有超链接,该超链接链接到用于打开的文件 但是如何从l列
中的文件获取lastmodifieddate示例:a22链接到文件vimco,所以该文件的最后修改日期是在22中输入
也并非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的值-可以解决吗?
答案 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中有超链接,它将返回日期。