У меня есть папка, которая содержит, например, файлы ab c, poi, krf, lss, и у меня есть кнопка, которая содержит существующий код, который перебирает папку и извлекает данные из каждого файла в таблицу Excel.
Однако, несмотря на то, что данные уже извлечены в таблицу Excel, каждый раз, когда я нажимаю кнопку, она все равно будет извлекать данные из каждого файла, я хотел бы избежать этого, сохраняя все имена файлов в папке в массиве. или другие методы, ТОГДА всякий раз, когда я нажимаю кнопку, он сравнивает «предыдущие имена файлов» внутри папки, если в папку вносятся какие-либо изменения, например, добавление в папку нового файла mmn, он будет выполнять только извлечение из файла ». mmn "и пропустите извлечение для остальных файлов, которые все еще были в папке.
например, моя папка в настоящее время содержит 50 файлов (все с разными именами), например," ab c "," mmn ", «lll», я сохраняю эти 50 имен файлов, а затем, если я нажму на свою кнопку, чтобы извлечь данные, она проверит, не произошло ли с ней в моей папке каких-либо изменений, например, если она все еще содержит 50 файлов (то же имя, что и у предыдущего ») ab c "," mmm "," lll "), то не делайте извлечения, потому что данные уже существуют в листе Excel.
однако, если файлы в папке изменились, например, был добавлен новый файл с именем «uio», то я хочу выполнить извлечение только на «uio» и добавить данные ниже последней строки, содержащей данные вместо всех файлов "ab c", "mmn", "lll" и "uio".
Это мой текущий код, может кто-нибудь, пожалуйста, дайте мне знать, как я могу изменить его в соответствии с моим описание?
Спасибо всем.
Option Explicit
Sub LoopFiles()
Dim strFolder As String
Dim strDirRef As String
Dim nFiles As Long, i As Long
Dim strFound() As String
strFolder = "C:\Users\Desktop\asi\"
strDirRef = Dir(strFolder)
Do While Len(strDirRef) > 0
nFiles = nFiles + 1
ReDim Preserve strFound(1 To nFiles)
strFound(nFiles) = strDirRef
strDirRef = Dir
Loop
For i = 1 To nFiles
Debug.Print strFound(i)
Next i
End Sub