Я должен перебрать свою папку и добавить имена файлов в словарь, а затем использовать существующий словарь (например, 60 файлов) в качестве справочного материала для следующего запуска макроса.
Если моя папка не ' Не должно быть никаких изменений, поэтому 60 имен файлов соответствуют словарю, а затем ничего не делают.
Если в папку внесены изменения, например, в папку добавлено три новых файла, то обновите словарь, добавив новый затем имена файлов «сделать что-то», но только для трех новых файлов, а не для 60 существующих файлов, если только один из 60 существующих файлов не был удален.
Код, несмотря на добавление файлов в папку, не обновляется словарь, и, несмотря на то, что он имеет такое же количество файлов, он все равно «делает что-то».
Я никогда не использовал словарь ранее ни на одной платформе и не знаю об этом.
Код Предоставлено JvdV Excel Vba избежать повторного извлечения данных
Public Dict As Object
Sub Test()
Dim oFSO As Object, oFolder As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\Desktop\asi")
If Dict Is Nothing Then
Set Dict = CreateObject("Scripting.Dictionary")
End If
For Each oFile In oFolder.Files
If Dict.Exists(oFSO.GetBaseName(oFile)) Then
'Skip file
Else
'Don't skip file and do something....
'Add to dictionary for next iteration
Dict.Add oFSO.GetBaseName(oFile), 1
End If
Next oFile
Range("A1").Resize(UBound(Dict.Keys)).Value = Application.Transpose(Dict.Keys)
End Sub