Добавьте только новые гиперссылки и порядок в соответствии с FileDateTime

У меня есть следующий код VBA:

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)) = FileDateTime(objFile) i = i + 1 Next objFile End Sub 

Код работает нормально, он находит нужную папку, создает список вниз гиперссылок к этому файлу, а затем рядом с каждой гиперссылкой он также показывает, что последняя дата файла была изменена.

Моя проблема в том, что каждый раз, когда я запускаю код, он обновляется с нуля. Я хочу, чтобы это только добавляло новые файлы (файлы, которые были помещены в папку после последнего запуска кода). Я также хочу, чтобы ссылки всегда были в порядке изменения последней даты (от самого старого до самого нового).

Другими словами, он должен только добавлять гиперссылки файлов, которые уже не указаны на моем листе Excel.

Как мой код может быть отредактирован для выполнения этого?

Возможно, что-то вроде этого будет работать (или это может дать некоторые идеи):

 Sub Hyperlink() Dim objFSO As Object, objFolder As Object, objFile As Object, ObjRange As Range Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("S:\Promigen Orders") For Each objFile In objFolder.Files ' Find the Object in your list, if it exists. Set ObjRange = Nothing On Error Resume Next Set ObjRange = Range("A:A").Find(What:=objFile.Name, LookIn:=xlValues, LookAt:=xlWhole) On Error GoTo 0 ' If it does not exist, add it to the list, at the end & create the hyperlink. If ObjRange Is Nothing Then ' The reason I have so many .End(xlDown)'s is because I can't be sure if you have titles or not, and this may effect where the "last" cell is Set ObjRange = Range("A1").End(xlDown).End(xlDown).End(xlDown).End(xlUp).Offset(1) ActiveSheet.Hyperlinks.Add Anchor:=ObjRange, Address:=objFile.Path, TextToDisplay:=objFile.Name End If ' In either case, update the file date time value. ObjRange.Offset(0, 1).Value = FileDateTime(objFile) Next objFile ' Sort by Modified Date With ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range("A:B"): .Header = xlYes: .MatchCase = False: .Orientation = xlTopToBottom .SortMethod = xlPinYin: .Apply End With End Sub 
Давайте будем гением компьютера.