2015-10-21 44 views
1

我有一個Excel電子表格並使用VBA來顯示特定文件夾中的文件列表。 VBA也爲我創建超鏈接。這工作正常。但是,它不會將上次修改日期放置在每個超鏈接旁邊的單元格中。對於文件夾,顯示日期上次修改的文件的單元格鏈接到文件

例如,如果TestFold.pdf在單元格A1中 - 我想在單元格B1(它旁邊)中修改此文件的日期(超鏈接)。

我的最終目標是每次將新文件夾添加到服務器位置時,我都可以簡單地運行我的VBA並獲取該文件夾中所有文件的列表作爲超鏈接(我已經完成)以及最後一次修改日期在他們旁邊。

我VBA用於獲取的文件夾,並顯示爲超鏈接如下:

Sub Hyperlink() 
Dim objFSO As Object 
Dim objFolder As Object 
Dim objFile As Object 
Dim i As Integer 


Set objFSO = CreateObject("Scripting.FileSystemObject") 

Set objFolder = objFSO.GetFolder("S:\Promigen Orders") 
i = 1 

For Each objFile In objFolder.Files 

Range(Cells(i + 1, 1), Cells(i + 1, 1)).Select 

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ 
    objFile.Path, _ 
    TextToDisplay:=objFile.Name 
i = i + 1 
Next objFile 
End Sub 

是否可以添加到這個VBA?

回答

1

我相信filedatetime功能是一個你正在尋找

編輯

是,skkakkar的答案是更好的,我編輯我的代碼以他的建議:

Sub Hyperlink() 
Dim objFSO As Object, objFolder As Object, objFile As Object 
Dim i As Integer 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFSO.GetFolder("S:\Promigen Orders") 
i = 1 

For Each objFile In objFolder.Files 

Range(Cells(i + 1, 1), Cells(i + 1, 1)).Select 

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ 
objFile.Path, TextToDisplay:=objFile.Name 

Range(Cells(i + 1, 2), Cells(i + 1, 2)) = objFile.DateLastModified 
i = i + 1 
Next objFile 
End Sub 
+0

謝謝!我是VBA新手。如何將filedatetime函數添加到我的上述VBA代碼中?以便它將修改的日期放在每個超鏈接旁邊? –

+0

我剛剛編輯了我的答案,它會根據你的要求顯示日期 –

+0

太棒了!完美工作!非常感謝 –

1

只需添加您的代碼中的一行代碼如下所示

TextToDisplay:=objFile.Name 
Range(Cells(i + 1, 2), Cells(i + 1, 2)).Value2 = Format(objFile.DateLastModified, "dd-mmm-yyyy") 

i = i + 1 
相關問題